Розробника

Парсер Cron-виразів

Вставте будь-який 5-польовий cron-вираз і миттєво дізнайтеся, що він означає простою мовою — більше не потрібно вдивлятися в зірочки та слеші, щоб зрозуміти, коли запускається завдання.

Цей інструмент вам допоміг?

Що таке Парсер Cron-виразів?

Cron — це стандартний синтаксис планування, який використовується в cron-завданнях Unix/Linux, конвеєрах CI/CD, Kubernetes CronJobs та безлічі інших планувальників завдань. Вираз cron упаковує весь розклад повторюваних завдань у п'ять компактних полів, що є потужним інструментом, але, як відомо, його важко прочитати з першого погляду — чи «0 */4 * * 1-5» означає кожні 4 години в будні, чи щось зовсім інше? Цей парсер розбирає вираз cron поле за полем і перекладає його у зрозуміле речення, щоб ви могли перевірити правильність розкладу перед його застосуванням або швидко зрозуміти розклад, написаний кимось іншим, без звернення до таблиці синтаксису cron.

Коли використовувати цей калькулятор

  • При перевірці cron-розкладу перед розгортанням запланованого завдання чи конвеєра CI/CD
  • При налагодженні причини, чому заплановане завдання запустилося (або не запустилося) в неочікуваний час
  • При перевірці Kubernetes CronJob або розкладу GitHub Actions, написаного колегою
  • При вивченні синтаксису cron для курсу з системного адміністрування чи DevOps
  • При аудиті наявних записів crontab під час міграції сервера
  • При проєктуванні складного шаблону планування, що поєднує кілька часових обмежень

Кроки:

  1. Вставте або введіть 5-польовий cron-вираз у поле введення.
  2. Перегляньте кожне поле окремо з його значенням.
  3. Прочитайте переклад усього розкладу простою мовою.
  4. Спробуйте кнопку готового шаблону для поширених розкладів, як-от «щогодини» чи «у будні о 9:00».

Формула

┌───────────── хвилина (0-59) │ ┌───────────── година (0-23) │ │ ┌───────────── день місяця (1-31) │ │ │ ┌───────────── місяць (1-12) │ │ │ │ ┌───────────── день тижня (0-6, неділя=0) │ │ │ │ │ * * * * *

Випадки використання

  • Перевірка cron-розкладу перед розгортанням запланованого завдання чи конвеєра CI/CD
  • Розуміння Kubernetes CronJob або запланованої serverless-функції, написаної колегою
  • Налагодження причини, чому заплановане завдання запустилося (або не запустилося) в неочікуваний час
  • Вивчення синтаксису cron для курсу з системного адміністрування чи DevOps
  • Аудит наявних записів crontab під час міграції сервера

Ключові переваги

  • Миттєвий переклад незрозумілого синтаксису cron на просту мову
  • Розбір кожного з 5 полів окремо для ясності
  • Готові шаблони в один клік для найпоширеніших схем планування
  • Без реєстрації, повністю працює у вашому браузері

Поради

  • Якщо сумніваєтеся, спершу протестуйте на найближчому часі в майбутньому, щоб переконатися, що розклад спрацьовує як очікується
  • Використовуйте діапазони (1-5) замість переліку кожного значення через кому, коли це можливо, для кращої читабельності
  • Двічі перевірте налаштування часового поясу сервера чи планувальника — це найпоширеніше джерело помилок «неправильного часу» в cron
  • Для чогось складнішого за просту щоденну чи щотижневу схему опишіть розклад простою мовою та порівняйте його зі своїм наміром перед розгортанням

Поширені помилки

  • Забувати, що день місяця та день тижня поєднуються через АБО, а не через І
  • Плутати нумерацію дня тижня з 0 (0=неділя) з нумерацією з 1, прийнятою в інших системах
  • Вважати, що */7 у полі дня місяця означає «кожні 7 днів» — насправді це дні 1, 8, 15, 22, 29 з перезапуском щомісяця
  • Забувати, що більшість реалізацій cron працюють за місцевим часом сервера, а не за UTC чи часом користувача

Ключові терміни

Cron: планувальник завдань за часом, що використовується в Unix-подібних операційних системах
Crontab: файл або команда, що використовується для визначення списку cron-завдань
Крокове значення (Step value): синтаксис «/N», що означає «кожні N одиниць», починаючи з мінімуму поля
CronJob: нативний ресурс Kubernetes для запуску завдань за розкладом cron

Пов'язані концепції

  • Калькулятор різниці в часі: Обчисліть тривалість між двома датами та часами
  • Калькулятор днів до: Порахуйте дні до визначеної дати
  • Конвертер часових міток Unix: Конвертуйте між часовими мітками Unix та датами
  • Калькулятор перетину часових поясів: Знайдіть перетин робочих годин між часовими поясами
  • Форматувальник JSON: Форматуйте та перевіряйте дані JSON

Приклад

Вираз "0 9 * * 1-5" розкладається так: хвилина=0, година=9, кожен день місяця, кожен місяць, з понеділка по п'ятницю — тобто «о 09:00, з понеділка по п'ятницю».

Інтерпретація результатів

Парсер розбирає 5-польовий cron-вираз на окремі компоненти та перекладає кожен простою мовою. П'ять полів: хвилина (0-59), година (0-23), день місяця (1-31), місяць (1-12) та день тижня (0-6, де 0 — неділя). Завдання запускається, коли всі п'ять полів збігаються з поточним часом — це логіка І між полями. Особливу увагу зверніть на взаємодію між днем місяця та днем тижня, яка використовує логіку АБО (а не І). Завдання, заплановане на 15-те число й п'ятницю, виконуватиметься 15-го числа кожного місяця й кожної п'ятниці — а не лише в п'ятниці, які припадають на 15-те число.

Часті запитання

Які 5 полів входять до cron-виразу?
У порядку: хвилина (0-59), година (0-23), день місяця (1-31), місяць (1-12) та день тижня (0-6, де 0 — неділя). Завдання запускається, коли всі п'ять полів збігаються з поточним часом.
Що означає зірочка (*) у синтаксисі cron?
Зірочка означає «дозволено будь-яке значення» для цього поля. Наприклад, * у полі години означає, що завдання може виконуватися в будь-яку годину — тобто це поле не обмежує розклад.
Що означає */5?
Слеш позначає крокове значення. */5 у полі хвилин означає «кожні 5 хвилин» — починаючи з мінімального значення поля та повторюючись кожні 5 одиниць.
Як запланувати завдання лише на будні дні?
Використайте діапазон у полі дня тижня: 1-5 означає з понеділка по п'ятницю. У поєднанні з конкретною годиною та хвилиною, наприклад "0 9 * * 1-5", завдання запускається о 9:00 щобудня в робочі дні.
Що означає кома в синтаксисі cron?
Кома відокремлює кілька значень в одному полі. Наприклад, 0,15,30,45 у полі хвилин означає, що завдання запускається на хвилинах 0, 15, 30 та 45. Кома — це просте АБО: завдання запускається в будь-який із вказаних значень.
Що таке дефіс (діапазон) у синтаксисі cron?
Дефіс визначає діапазон значень. Наприклад, 1-5 у полі дня тижня означає з понеділка по п'ятницю (дні з 1 по 5). Діапазони включають обидва кінці. Ви можете поєднувати діапазони з іншим синтаксисом: 1-5,0 означає з понеділка по п'ятницю та неділю.
Як запланувати завдання, щоб воно виконувалося кожні 2 тижні?
Стандартний cron не підтримує дворазове планування з коробки. У вас два варіанти: (1) Використовуйте допоміжний скрипт, який перевіряє дату і виконується раз на два тижні, або (2) Використовуйте планувальник завдань, який підтримує складніші вирази, як-от AWS EventBridge або системні таймери з календарними тригерами.
Який часовий пояс використовує cron?
Стандартний cron використовує локальний часовий пояс сервера. Якщо ваш сервер налаштований на UTC, усі cron-завдання виконуються в UTC незалежно від вашого локального часового поясу. Завжди перевіряйте налаштування часового поясу сервера, особливо в хмарних середовищах.
Яка різниця між cron і crontab?
Cron — це демон (фонова служба), який виконує заплановані завдання. Crontab — це файл конфігурації (або команда), який визначає список cron-завдань. Редагуючи crontab, ви пишете визначення розкладу, які демон cron зчитує та виконує.
Як cron працює з переходом на літній час?
Більшість реалізацій cron не автоматично коригуються при переході на літній час. При переведенні годинників вперед завдання, заплановане на 2:00, може бути повністю пропущене. При переведенні годинників назад завдання може виконатися двічі. Щоб уникнути проблем, плануйте завдання за межами перехідного періоду (2:00-3:00) або використовуйте UTC-розклад.
Чи можна використовувати cron для інтервалів коротших за хвилину?
Стандартний cron має хвилинну точність і не може планувати завдання частіше, ніж раз на хвилину. Для підхвилинних інтервалів використовуйте альтернативи, як-от таймери systemd, Kubernetes CronJobs з коротшими інтервалами або планувальники рівня додатків (node-cron з підтримкою мілісекунд).

Відкрийте більше інструментів

Свіжі добірки з усієї нашої бібліотеки інструментів.