如果我这样做:
*/9 * * * * /path/to/wotnot
该任务将在两小时内的什么时间运行(从 09h00 开始)
是 A 吗:
09h00
09h09
09h18
09h27
09h36
09h45
09h54
10h03
10h12
10h21
10h30
10h39
10h48
10h57
或 B:
09h00
09h09
09h18
09h27
09h36
09h45
09h54
10h00
10h09
10h18
10h27
10h36
10h45
10h54
答案1
当查看某个范围时,您只能在该列内进行解释,因此分钟列中的“*/9”表示“列出每分钟,然后选择每九个值”。此选择会在整点重置,因此您会每小时在 xx:00、xx:09、xx:18 等重新启动。
它也可以读作“每小时九分钟”,暗示在整点时重置。
因此,您看到的实际行为与选项 B 相对应。
答案2
为了确认约翰的回答,*/n
分钟列的意思是“当分钟为 0 mod n 时”。这里有一个crontab
条目:
*/7 * * * * date >> /tmp/foo
输出如下:
Thu Jan 10 14:49:01 GMT 2013
Thu Jan 10 14:56:01 GMT 2013
Thu Jan 10 15:07:01 GMT 2013
注意最后两次之间的差距是不是七分钟,因为 nn:56 之后的下一个*/7
匹配时间是 `nn+1:07。
是的,我知道那些时间是在未来(或者当我发布这篇文章时);我不得不将系统时钟调得相当快才能得到一个快速的答案。