为什么我的计划工作在这个月运行?

今天是2016年11月1日或(明确的)数字,2016-11-01。

我有一个用户cron作业像这样设置:

# mh dom mon dow command 33 3 1 */2 * /home/user/... 

它应该在每个月的第一个月份在上午3点33分运行,不pipe是星期几,但是由于某种原因,它是在今天运行的,尽pipe11不能被2整除。

有人能解释我吗? 我是否错误地认定了2的可分性?

编辑:我忘了提及,我在Debian 8.6“Jessie”机器上运行cron版本“3.0pl1-127 + deb8u1”。

/不是一个算术expression式,而是在允许的值范围内描述“步进值”。 所以,由于月份总是从1开始,而不是从0 ,因此/2将意味着“取其他值”,导致(1,3,5,7,9,11)。

这也在手册页中描述,虽然这不是很清楚和容易理解:

步长值可以与范围结合使用。 在“<number>”范围之后,指定在该范围内跳过数字的值。 例如,可以在小时字段中使用“0-23 / 2”来每隔一小时指定命令的执行(V7标准中的替代选项是“0,2,4,6,8,10,12,14,16 ,18,20,22" )。 星号后也允许步骤,所以如果你想说“每两个小时”,只需使用“* / 2”即可。

今天是十一月的第一天。

* / 2意味着你的cronjob会按照你所说的每隔一个月执行一次。

所以下个月(十二月),cronjob将不会被执行,但会在一个月之后(一月)执行。

本月(10月)前一个月,cronjob没有被执行。 但在九月份是这样。