题
在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”时(几个小时)就可以了。
适用于Cronie 即使是5分钟的间隔,例如
3-58/5 * * * * /home/test/bin/do_some_thing_every_five_minute
我意识到这已经差不多10岁了,但是我每两小时工作1-23 / 2就会遇到麻烦。
对于所有用户,完全不需要奇数小时精度。我做了以下适合我的团队需求。
59 */2 * * *
在第59分钟每两个小时执行一次这个工作。
不隶属于 StackOverflow