78

在 crontab 中,我可以使用星号来表示每个值,或者使用“*/2”来表示每个偶数值。

有没有办法指定每个数值?(像“1+*/2”这样的东西有用吗?)

4

6 回答 6

105

根据您的 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 脚本中可能会更容易,如果它在奇数分钟内没有被调用,它将立即退出。

于 2008-09-23T17:35:04.190 回答
81

每一分钟都是:

1-59/2 * * * * 

每一个偶数分钟都是:

0-58/2 * * * * 
于 2011-02-21T21:27:53.387 回答
4

尝试

1-23/2

根据您的问题,我假设 Vixie Cron。我怀疑这是否适用于任何其他 cron。

于 2008-09-23T17:34:46.377 回答
3

当我阅读手册时,“1-23/2”(几个小时)就可以了。

于 2008-09-23T17:35:54.907 回答
2

我意识到这已经快 10 年了,但是我很难在每两小时的零时工作中获得 1-23/2。

对于所有不需要精确奇数小时精度的用户。我做了以下适合我的团队需要的事情。

59 */2 * * *

在第 59 分钟每两小时执行一次作业。

于 2019-07-01T16:41:34.153 回答
0

即使间隔 5 分钟也可以在 Cronie 上工作,例如

3-58/5 * * * * /home/test/bin/do_some_thing_every_five_minute
于 2012-05-03T08:07:06.633 回答