Перейти до вмісту

Створення й пояснення виразів cron

Складайте розклад cron візуально, читайте його пояснення простою мовою та переглядайте наступні запуски в будь-якому часовому поясі. Підтримує стандартний синтаксис, Quartz і AWS і працює у вашому браузері.

Простими словами

At 09:30, on Monday through Friday

Шаблони

Створити візуально

Наступні 10 запусків

Обчислення…

Час, пропущений через перехід на літній чи зимовий час, не запускається; повторена година запускається один раз. Справжні демони cron тут поводяться трохи інакше.

Шпаргалка — Стандартний
ПолеДопустимі значення
Хвилина0–59
Година0–23
День місяця1–31
Місяць1–12 або JAN–DEC
День тижня0–7 (0 і 7 = неділя) або SUN–SAT
СимволЗначення
*будь-яке значення
,список: 1,15 = 1-ше та 15-те число
-діапазон: 1-5 = від 1 до 5
/крок: */15 = кожні 15; 5/15 = 5, 20, 35, 50
@dailyмакроси: @yearly @monthly @weekly @daily @hourly (і @reboot)

Якщо обмежено і день місяця, і день тижня, стандартний cron запускається в дні, що відповідають будь-якому з них.

Працює у браузері · без надсилання на серверЯк це працює

Як користуватися: Конструктор виразів cron

  1. 1

    Оберіть діалект

    Виберіть стандартний cron, cron із секундами, Quartz або AWS EventBridge — або просто вставте вираз, і діалект визначиться за кількістю полів.

  2. 2

    Напишіть або зберіть розклад

    Введіть вираз, почніть із шаблону або налаштуйте кожне поле у візуальному редакторі.

  3. 3

    Перечитайте результат

    Перевірте опис простими словами та підсвічені поля, щоб переконатися, що розклад означає саме те, що ви задумали.

  4. 4

    Перевірте наступні запуски

    Виберіть часовий пояс, перевірте наступні 10 запусків і скопіюйте вираз.

Ліміти та Pro

Безкоштовно й без реєстрації: 4 діалекти, 12 шаблонів і наступні 10 запусків у будь-якому з понад 400 часових поясів, пошук до 30 років уперед (або до останнього року у виразі).

Pro прибирає рекламу; конструктор працює однаково в усіх тарифах. Дивитися Pro

Про інструмент: Конструктор виразів cron

Вираз cron стискає розклад у кілька полів, розділених пробілами, і одна зсунута цифра може перетворити «щобудня о 9:00» на «щохвилини протягом дев’ятої години». Цей конструктор дає змогу написати або вставити вираз і одразу побачити його опис простими словами з підписаними полями, а також список наступних десяти запусків.

Підтримано чотири діалекти, бо вони справді відрізняються. Стандартний cron має пʼять полів — хвилина, година, день місяця, місяць і день тижня — і використовується в crontab, службах cron у Linux, Kubernetes CronJob та GitHub Actions; він також приймає макроси на кшталт @daily. Діалект із секундами додає на початку поле секунд, як у node-cron і croner. Quartz використовує шість або сім полів із секундами та необовʼязковим роком, нумерує неділю як 1, вимагає знак ? в одному з полів дня й додає L для «останнього», W для «найближчого будня» та # для «третьої пʼятниці». AWS EventBridge має шість полів, останнє з яких — рік, ділить із Quartz правила для днів і записується як cron(…). Якщо кількість полів у вставленому виразі очевидна, діалект перемикається сам, а під час зміни діалекту наявний вираз за можливості конвертується.

Візуальний редактор задає кожне поле елементами «Кожні», «Діапазон» і конкретних значень, а шаблони охоплюють поширені завдання. Час запусків обчислюється в будь-якому часовому поясі IANA з урахуванням переходу на літній час, а для правил EventBridge за замовчуванням діє UTC, як і в AWS.

Конструктор перевіряє лише синтаксис і час: він не знає годинника вашого сервера, пропущених запусків, коли машина була вимкнена, та обмежень конкретних планувальників, як-от мінімальний інтервал у GitHub.

Приватність

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

Можливості

Пояснення простими словами

«О 09:30, з понеділка по пʼятницю» замість здогадок, що робить 30 9 * * 1-5.

Наступні 10 запусків у будь-якому поясі

Час запусків у UTC або будь-якому часовому поясі IANA з урахуванням переходу на літній час.

Синтаксис Quartz і AWS

Секунди, роки, ?, L, W і # для планувальників, які їх підтримують.

Конструктор виразів cron: поширені запитання

Чому моє завдання запускається у більше днів, ніж я очікував?
У стандартному cron, якщо обмежено і день місяця, і день тижня, завдання запускається, коли збігається будь-яке з них. Тож 0 9 13 * 5 спрацює і кожного 13-го числа, і кожної пʼятниці, а не лише в пʼятницю, 13-го. Опис тут це чітко зазначає. Quartz і AWS уникають неоднозначності, вимагаючи знак ? в одному з двох полів.
Що означає */15 у виразі cron?
Скісна риска задає крок: */15 у полі хвилин означає кожні 15 хвилин, починаючи з 0, тобто о :00, :15, :30 і :45. Початкове значення зсуває розклад: 5/15 спрацює о :05, :20, :35 і :50. У поєднанні з діапазоном 9-17/2 у полі годин означає кожну другу годину з 9 до 17.
Який часовий пояс використовує cron?
Класична служба cron використовує локальний часовий пояс сервера, якщо в crontab не задано CRON_TZ або TZ. Kubernetes CronJob за замовчуванням діє в поясі контролера, але приймає поле timeZone, розклади GitHub Actions працюють у UTC, а правила EventBridge завжди використовують UTC, тоді як EventBridge Scheduler дозволяє обрати пояс. Виберіть тут відповідний пояс, щоб побачити реальний час запусків.
Що відбувається під час переходу на літній чи зимовий час?
Коли годинник переводять уперед, локальних моментів пропущеної години не існує, а коли назад — одна година настає двічі. Цей попередній перегляд пропускає неіснуючі моменти й виконує повторювані один раз. Справжні служби поводяться по-різному: Vixie cron і cronie намагаються виконати пропущені завдання, тож для завдань між 01:00 і 03:00 за місцевим часом краще обрати UTC або звіртися з документацією планувальника.
Як перетворити рядок crontab на формат Quartz або AWS?
Виберіть новий діалект зі списку, і вираз буде конвертовано: для Quartz додається поле секунд, для AWS — поле року, номери днів тижня переходять із 0–6 на 1–7, а в невикористане поле дня ставиться ?. Якщо в оригіналі задано і день місяця, і день тижня, ви побачите повідомлення, що цільовий діалект не може виразити таку комбінацію.