Cron
為什麼我的 cron 作業在這個月執行?
今天是 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”。