我该如何设置定时任务(cron job)每72分钟执行一次?或者其他一些不太好看的时间间隔怎么办?
我该如何设置定时任务(cron job)每72分钟执行一次?或者其他一些不太好看的时间间隔怎么办?
cron
是基于时间而非间隔运行任务的,因此没有绝对简单的方法来实现需求。但你可以在crontab
中设置多个行直到找到公共分母,虽然这有点繁琐。由于你需要每72分钟运行一次任务,因此它必须在以下时间执行:
如你所见,该模式每6小时重复5次。因此,在crontab
中将有5行:
0 0,6,12,18 * * * 命令 12 1,7,13,19 * * * 命令 24 2,8,14,20 * * * 命令 36 3,9,15,21 * * * 命令 48 4,10,16,22 * * * 命令
当然,另一个选择是创建一个包装的守护进程或shell脚本,它执行并休眠所需的时间,直到停止。
使用at(man at)。让您的应用程序或启动脚本计算出未来72分钟的启动时间,并在开始工作之前安排自己再次运行。
在Windows XP和Vista上也可用。
以下是GNU/Linux的示例:at -f command.sh now + 72 minutes
#!/bin/sh
while [ true ]
do
sleep 4320
echo "Put your program here" &
done
您可以随时采用每分钟触发cron的方法,并在脚本运行时间距离上次运行时间不超过72分钟时立即退出。
嗯,我知道这有点晚了,但我正在查看一些调度问题并看到了这个问题。
只需在您的crontab中执行以下操作
*/72 * * * * /home/script.sh
*/72 * * * * date >> cron-over-72.out
的结果是该作业每小时运行一次,准时在整点运行。 - CODE-REaD