Crontab每5分钟一次,但不是在5、10、15等时间



我的一些站点需要常规的crontab,我用它每5分钟启动一次cronjob"/5***";。

crontab很小,很轻,但开始有几个站点需要它们,并且将它们一起启动,这开始不是一个好主意。

用这个"*/5〃;cron从5、10、15、20等开始。有可能使它从8、13、18、23等开始吗?

Vixie cron接受一定范围内的步骤(感谢Keith Thompson(,因此您可以执行

3-58/5 * * * * my_command

对于其他版本的cron,这可能不受支持,您只需要执行

3,8,13,18,23,28,33,38,43,48,53,58 * * * * my_command

另一种选择是类似

*/5 * * * * sleep 3m ; my_command

这可以适应随机睡眠,从而进一步分散工作。例如,你可以做

*/5 * * * * /bin/bash -c 'sleep $((RANDOM/(32767/180))) ; my_command'

或者,如果您可以使用bash运行SHELL =行之后的所有其他cron作业,则在crontab中使用SHELL = /bin/bash使/bin/bash -c变得不必要。bash中的$RANDOM扩展为0到32767之间的随机整数,因此这会使您延迟180秒。

最新更新