Як cron обробляє залишки на роботах "так часто"


13

Якщо я це роблю:

*/9 * * * * /path/to/wotnot

У який час буде виконуватися завдання через дві години, починаючи з 09:00

Це А:

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

Відповіді:


31

Дивлячись на діапазон, ви інтерпретуєте його лише в цьому стовпчику, тому "* / 9" в стовпці хвилин означає "список кожної хвилини, а потім вибирайте кожне дев'яте значення". Цей вибір обновлюється вгорі години, тому ви перезапускаєтесь у xx: 00, xx: 09, xx: 18 та ін. Щогодини.

Його також можна читати як "кожні дев'ять хвилин кожної години", маючи на увазі перезавантаження вгорі години.

Тож фактична поведінка, яку ви побачите, відповідає варіанту Б.


Це єдина відповідь, яка, здається, насправді відповідає на питання. Ви спробували це переконатися?
геть

За останні 10 хвилин? Ні. За останні три місяці? Так, хоча не конкретно через дев'ять хвилин.
Іван

Не бачите, чому я би переймався, коли ви це зробили, але тільки якщо. Дякую.
геть

1
У мене колишні колеги набридають: "ні, ви цього не тестували, ви покладаєтесь на свою несправедливу пам'ять!" у подібних ситуаціях (звичайно, через 5 хвилин вони роздратовані після того, як я докажу, що це все ще працює), тому я сформував звичку хеджувати проти цього заздалегідь.
Іван

2
Перший крок у тестуванні - переконатися, що у вас є та сама марка та версія, що і у замовника (у цьому випадку Джессі). Я поки що не бачу підказки про те, який крон він використовує. (Це, мабуть, Vixie Cron, і ця основна особливість, ймовірно, стабільна для версій цієї програми.)
Kaz

22

Щоб підтвердити відповідь Джона, */nу стовпці хвилин означає "коли хвилина 0 мод н". Ось 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.

Так, я знаю, що ті часи є в майбутньому (або вони були, коли я публікував це); Мені довелося досить швидко рухати системний годинник вперед, щоб отримати швидку відповідь.


5
+1 за зусилля :)
Свен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.