在 crontab 中,我可以使用星号来表示每个值,或者使用“*/2”来表示每个偶数值。
有没有办法指定每个奇数值?(像“1+*/2”这样的东西有用吗?)
根据您的 cron 版本,您应该能够(例如几个小时):
1-23/2
通过 crontab(5) 联机帮助页中的 EXTENSIONS 部分:
Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".
对于更便携的解决方案,我怀疑您只需要使用简单的列表:
1,3,5,7,9,11,13,15,17,19,21,23
但是将您的命令包装在一个 shell 脚本中可能会更容易,如果它在奇数分钟内没有被调用,它将立即退出。
每一分钟都是:
1-59/2 * * * *
每一个偶数分钟都是:
0-58/2 * * * *
尝试
1-23/2
根据您的问题,我假设 Vixie Cron。我怀疑这是否适用于任何其他 cron。
当我阅读手册时,“1-23/2”(几个小时)就可以了。
我意识到这已经快 10 年了,但是我很难在每两小时的零时工作中获得 1-23/2。
对于所有不需要精确奇数小时精度的用户。我做了以下适合我的团队需要的事情。
59 */2 * * *
在第 59 分钟每两小时执行一次作业。
即使间隔 5 分钟也可以在 Cronie 上工作,例如
3-58/5 * * * * /home/test/bin/do_some_thing_every_five_minute