怎么能让cron工作在不同的时间和分钟发生

时间:2013-07-12 08:38:27

标签: linux cron centos crontab

我想制作crontab,其中脚本在每小时的不同时间发生,就像这样

35 1,8,12,15,31 16,18,21 * * 0,1,2,3,4,5,6 python backup.py

我希望脚本能够在16hour and 31 minutes运行,但它会给我错误的错误时间

我希望cron出现在

1:35am,然后是16:31,然后是21:45

2 个答案:

答案 0 :(得分:5)

由于没有可以匹配三次的模式,因此无法仅使用一个crontab表达式来安排。你将不得不使用三个:

45 21 * * * python backup.py
31 16 * * * python backup.py
35 1 * * * python backup.py

另请注意,python backup.py可能无效。您必须为文件和二进制文件定义完整路径:

35 1 * * * /usr/bin/python /your/dir/backup.py

使用/usr/bin/python可以获得which python或类似内容。

答案 1 :(得分:0)

如果您所在的系统具有systemd,则可以查看systemd计时器(https://www.freedesktop.org/software/systemd/man/systemd.time.html)。然后,您可以使用RandomizedDelaySec设置和OnCalendar设置来实现随机性,该设置可以安排服务在您设置的每小时或间隔运行一次,并且每次运行都会生成RandomizedDelaySec,因此间隔是随机的。