Cron

為什麼我的 cron 作業在這個月執行?

  • November 2, 2016

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

我有一個像這樣設置的使用者 cron 作業:

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

它應該在每個月的第一天凌晨 3:33 執行每隔一個月,不管那是星期幾,但由於某種原因,它今天執行,即使 11 不能被 2 整除。

有人可以解釋一下嗎?我對可被 2 整除的假設是錯誤的嗎?

編輯:我忘了提,我cron在 Debian 8.6“Jessie”機器上執行版本“3.0pl1-127+deb8u1”。

/不是算術表達式,而是描述允許值範圍內的“步長值”。因此,由於月份總是以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”。

引用自:https://serverfault.com/questions/812489