Конструктор cron-виразів
Готовий вираз можна вставити цілком у будь-яке з п’яти полів — він розкладеться по них сам. Усе рахується у вашому браузері.
Про інструмент: конструктор і розшифровувач cron-виразів
Cron керує розкладами на кожному сервері, але його синтаксис не тримає в голові ніхто. П’ять зірочок нічого не пояснюють, а помилка в одному символі означає, що завдання виконається не тоді, коли треба, і помітите ви це нескоро. Цей інструмент працює в обидва боки: складає вираз із полів і одразу перекладає його людською мовою. Тут немає сторонньої реклами й реєстрації.
Усе рахується у вашому браузері — вираз не надсилається на сервер і ніде не зберігається.
Головні переваги інструменту:
Пояснення живою мовою: під виразом одразу видно, що саме він означає. Не «0 9 * * 1-5», а «о 09:00, з понеділка по пʼятницю».
Найближчі запуски: п’ять конкретних дат із днями тижня. Це найнадійніший спосіб переконатися, що розклад саме той, який ви задумали.
Розбір готового виразу: вставте цілий рядок на кшталт
*/15 * * * *у будь-яке з пʼяти полів — він розкладеться по них сам.
Як влаштований cron-вираз
Вираз складається з пʼяти полів, розділених пробілами. Кожне відповідає за свою одиницю часу:
Хвилина — від 0 до 59.
Година — від 0 до 23, тобто час рахується в 24-годинному форматі.
День місяця — від 1 до 31.
Місяць — від 1 до 12. Можна писати й скороченнями:
JAN,FEBі далі.День тижня — від 0 до 6, де 0 це неділя. Значення 7 теж означає неділю, а замість цифр приймаються
MON,TUEі решта.
Що можна писати в полі
Зірочка
*означає «будь-яке значення». Пʼять зірочок поспіль дають запуск щохвилини.Число
5— рівно це значення.Діапазон
1-5— усі значення від першого до останнього включно.Перелік
1,15,30— тільки перелічені значення.Крок
*/10— кожне десяте значення. Крок можна поєднати з діапазоном:0-30/10дасть 0, 10, 20 і 30.
Пастка, на якій спотикаються всі
Якщо ви обмежили одночасно день місяця і день тижня, cron спрацює тоді, коли збігається будь-яка з двох умов, а не обидві разом.
Вираз 0 0 13 * 5 запуститься не «у пʼятницю 13 числа», як здається, а і 13 числа кожного місяця, і щопʼятниці. Це не помилка реалізації, а поведінка, закладена в стандарт. Інструмент попереджає про неї щоразу, коли ви обмежуєте обидва поля, а список найближчих запусків показує наслідок наочно.
Кілька практичних порад
Не ставте важкі завдання рівно на початок години: о 00:00 і 03:00 навантаження на сервери традиційно найбільше. Зсув на кілька хвилин, скажімо
7 3 * * *, розводить піки.Памʼятайте про часовий пояс сервера: cron працює за часом машини, а не за вашим. Найближчі запуски тут рахуються за часом вашого браузера, тож на сервері в іншому поясі час буде інший.
Кожні 90 хвилин записати не можна: поля незалежні, тому інтервал, довший за годину і не кратний їй, доводиться розбивати на кілька рядків розкладу.
Перевіряйте результат за списком запусків, а не за виразом: прочитати пʼять дат надійніше, ніж вичитувати зірочки.