如何在没有 at 或 cron 的情况下运行定期计划作业

如何在没有 at 或 cron 的情况下运行定期计划作业

场景:您有一位用户无法访问 cron并需要安排一项工作(例如目录的 rsync)。使用at不是一个选项,因为您没有固定的结束日期。

尽管我敢打赌有成千上万种方法可以实现这一点,但我的方法如下:

答案1

快速而肮脏:

打开一个屏幕会话并创建一个像这样的while循环:

while : ; do
clear 
echo "$(date : Hey, I'm running this nice stuffz)"
time do_stuff
sleep 1d

这里的关键是sleep命令:它接受的不仅仅是毫秒值。还有秒 (s)、分钟 (m)、小时 (h) 和天 (d) 的格式说明符。此外,GNU sleep 不仅能够处理整数作为值,而且实际上还可以处理任意浮点数 ( info '(coreutils) sleep invocation')。这意味着您可以编写如下内容:

sleep 0.33d  or  sleep 0.5h

后者几乎没用,但你知道 ;)

相关内容