鍍金池/ 問答/Linux/ crontab 時(shí)間格式疑問

crontab 時(shí)間格式疑問

請問對于 Linux crontab 時(shí)間格式來說

*/22 * * * *

不是應(yīng)該每隔 22 分鐘執(zhí)行一次么?

但是看輸出是

14:44:00
15:00:00
15:22:00

請問為什么在 44 分鐘時(shí), 22 分之后應(yīng)該是 66,也就是 下個(gè)小時(shí) 6 分鐘,為什么會(huì)出現(xiàn)零點(diǎn)的呢?

回答
編輯回答
厭遇

來自Wikipedia

https://en.wikipedia.org/wiki/Cron

請注意,頻率一般不能表示; 只有均勻劃分它們的范圍的步數(shù)值表示準(zhǔn)確的頻率(分鐘和秒,即2/3,/ 4,/ 5,/ 6,/ 10,/ 12,/ 15,/ 20和/ 30,因?yàn)?0是可以被這些數(shù)字整除;數(shù)小時(shí),即/ 2,/ 3,/ 4,/ 6,/ 8和/ 12); 所有其他可能的“步驟”和所有其他領(lǐng)域在“重置”到下一分鐘,第二天或第二天之前的時(shí)間單位結(jié)束時(shí)產(chǎn)生不一致的“短”期; 例如,根據(jù)月份和閏年,輸入* / 5的日期字段有時(shí)會(huì)在1,2或3天后執(zhí)行; 這是因?yàn)閏ron是無狀態(tài)的(它不記得最后一次執(zhí)行的時(shí)間,也沒有計(jì)算它與現(xiàn)在的差別,這是精確頻率計(jì)數(shù)所需的 - 相反,cron只是模式匹配器)。

谷歌翻譯的,可能會(huì)有表述不清。

2017年3月31日 08:17
編輯回答
檸檬藍(lán)

這個(gè)是每隔22分鐘執(zhí)行一次,不是每個(gè)22分鐘,用22/*試試看

2017年1月21日 13:15
編輯回答
傻丟丟

首先, / 不是POSIX標(biāo)準(zhǔn)里面的用法
然后, 步頻只能設(shè)置"能整除其時(shí)間跨度"的值,
比如對于分和秒, 步頻可以是2,3,4,5,6,10,12,15,20,30,
對于小時(shí), 步頻可以是2,3,4,6,8,12

cron只是進(jìn)行模式匹配, 它是無狀態(tài)的, 不記錄你從什么時(shí)候開始執(zhí)行的,
所以如果不能整除, 就會(huì)產(chǎn)生非預(yù)期的效果

for minutes and seconds, that's /2, /3, /4, /5, /6, /10, /12, /15, /20 and /30
because 60 is evenly divisible by those numbers;
for hours, that's /2, /3, /4, /6, /8 and /12

引用自wiki的Cron

2017年4月7日 11:09