Парсер виразів cron

Розберіть розклад cron на прості складові та перегляньте час наступних запусків прямо у вашому браузері.

Вираз cron

Наступні запуски

(ваш локальний час)

Введіть вираз cron, щоб розібрати його.

Ваш вираз cron аналізується безпосередньо у вашому браузері. Нічого не надсилається на BroBroGo.

Поширені запитання

Який синтаксис cron підтримує цей інструмент?

Стандартний cron з 5 полями — хвилина, година, день місяця, місяць та день тижня. Підтримуються діапазони (1-5), кроки (*/15), списки (1,15), назви місяців і днів тижня (JAN, MON), а також ярлики @yearly, @monthly, @weekly, @daily, @hourly. Важливе правило: якщо обмежено і день місяця, і день тижня (не *), то для запуску достатньо збігу за будь-яким із цих параметрів.

У якому часовому поясі відображається час наступних запусків?

Локальний часовий пояс вашого браузера — той самий, який використовує ваша операційна система. Стандартний cron не містить інформації про часовий пояс; це визначає планувальник завдань, на якому він працює, тому сприймайте цей час як орієнтир для вашого локального часу, а не обов'язково сервера.

Чому вказано, що цей розклад ніколи не виконається?

Зазвичай це пов'язано з днем місяця, якого немає в деяких із вибраних місяців — наприклад, 31-ше число для квітня, червня, вересня чи листопада. Виберіть день, який існує в усіх вказаних місяцях, або розділіть розклад на окремі вирази.

Роль cron у плануванні завдань та структура виразу

Планувальник завдань cron є стандартним інструментом у Unix-подібних операційних системах для автоматизації періодичних процесів. Завдання, що виконуються за розкладом, налаштовуються за допомогою спеціальних текстових рядків — виразів cron. Коректне налаштування цих виразів є критично важливим для розробників, які перевіряють конфігурації фонових завдань, системних адміністраторів та спеціалістів технічної підтримки, що аналізують проблеми у роботі запланованих процесів.

Стандартний формат виразу cron складається з 5 полів, розділених пробілами:

  1. Хвилина
  2. Година
  3. День місяця
  4. Місяць
  5. День тижня

Цей інструмент розбирає вираз на окремі компоненти та обчислює точний час майбутніх запусків. Процес аналізу відбувається локально: ваш вираз cron аналізується безпосередньо у вашому браузері, і нічого не надсилається на BroBroGo.


Підтримуваний синтаксис та правила обробки полів

Інструмент підтримує класичний 5-параметровий синтаксис cron та загальноприйняті символи для гнучкого налаштування періодичності:

  • Символ зірочки (*): Означає відсутність обмежень для поля. У розшифровці відображається як "Будь-який".
  • Діапазони (наприклад, 1-5): Визначають послідовний інтервал значень.
  • Кроки (наприклад, */15): Використовуються для визначення періодичності. Для таких конструкцій інструмент виводить текстове пояснення залежно від поля:
    • Для хвилин: "Кожні {n} хв."
    • Для годин: "Кожні {n} год."
    • Для днів місяця: "Кожні {n} дн."
    • Для місяців: "Кожні {n} міс."
    • Для днів тижня: "Кожні {n} дн."
  • Списки (наприклад, 1,15): Перелік конкретних значень через кому.
  • Текстові назви: Підтримуються трилітерні назви місяців (наприклад, JAN) та днів тижня (наприклад, MON).
  • Ярлики швидкого доступу: Замість п'яти полів можна використовувати системні макроси @yearly, @monthly, @weekly, @daily та @hourly.

Приклад складного вхідного рядка для поля "Вираз cron": */15 9-17 * * MON-FRI.

Зверніть увагу, що цей інструмент не підтримує розширення з шостим полем секунд, а також специфічні для Quartz розширення, такі як символи L, W або #.


Взаємодія полів та логічні винятки

При написанні виразів cron важливо враховувати специфіку взаємодії між днями місяця та днями тижня, а також календарні обмеження.

Правило об'єднання днів місяця та днів тижня

Коли у виразі одночасно обмежені (тобто не дорівнюють *) і день місяця, і день тижня, планувальник застосовує логічне АБО. Це означає, що для запуску завдання достатньо збігу за будь-яким із цих двох параметрів. Завдання виконається і в зазначений день місяця, і в зазначений день тижня.

Неможливі розклади

Якщо вираз є синтаксично правильним, але задає умови, які фізично не можуть бути виконані, інструмент виведе повідомлення: "Цей розклад ніколи не виконається — перевірте, чи існує вказаний день місяця в усіх вибраних місяцях.".

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


Обчислення майбутніх запусків та часові пояси

Окрім текстового розбору полів, інструмент розраховує точний графік найближчих спрацьовувань. Користувач може налаштувати параметр "Кількість" у діапазоні від 1 до 20, щоб змінити число відображуваних результатів.

Обчислення часу запусків відбувається з урахуванням таких особливостей:

  • Усі результати відображаються у локальному часовому поясі вашого браузера. Поруч із результатами виводиться примітка "(ваш локальний час)".
  • Сам по собі стандартний вираз cron не містить інформації про часовий пояс. На практиці виконання завдання залежить від системного часу сервера, на якому запущено планувальник. Тому розрахований локальний час є орієнтиром для перевірки логіки інтервалів, а не гарантованим часом виконання на віддаленому сервері.

Повідомлення інтерфейсу та помилки

Під час роботи з інструментом ви можете побачити такі стани та повідомлення:

  • Введіть вираз cron, щоб розібрати його. — початковий стан, коли поле введення порожнє.
  • Некоректний вираз cron. — відображається, якщо введений рядок містить синтаксичні помилки.
  • Цей розклад ніколи не виконається — перевірте, чи існує вказаний день місяця в усіх вибраних місяцях. — виникає при логічно неможливих комбінаціях днів та місяців.

Часті запитання (FAQ)

Який синтаксис cron підтримує цей інструмент?

Стандартний cron з 5 полями — хвилина, година, день місяця, місяць та день тижня. Підтримуються діапазони (1-5), кроки (*/15), списки (1,15), назви місяців і днів тижня (JAN, MON), а також ярлики @yearly, @monthly, @weekly, @daily, @hourly. Важливе правило: якщо обмежено і день місяця, і день тижня (не *), то для запуску достатньо збігу за будь-яким із цих параметрів.

У якому часовому поясі відображається час наступних запусків?

Локальний часовий пояс вашого браузера — той самий, який використовує ваша операційна система. Стандартний cron не містить інформації про часовий пояс; це визначає планувальник завдань, на якому він працює, тому сприймайте цей час як орієнтир для вашого локального часу, а не обов'язково сервера.

Чому вказано, що цей розклад ніколи не виконається?

Зазвичай це пов'язано з днем місяця, якого немає в деяких із вибраних місяців — наприклад, 31-ше число для квітня, червня, вересня чи листопада. Виберіть день, який існує в усіх вказаних місяцях, або розділіть розклад на окремі вирази.