Аналізатор виразів Cron

Наш аналізатор виразів cron перетворює розклади cron на зрозумілу англійську мову та обчислює майбутній час виконання. Вставте будь-який вираз cron і миттєво дізнайтеся, що він означає, коли відбудеться наступний запуск і чи коректний синтаксис. Підтримує стандартний 5-поляний формат crontab (хвилина, година, день, місяць, день тижня), розширений 6-поляний формат із секундами та поширені шаблони на кшталт @daily, @hourly, @weekly. Уся обробка відбувається у вашому браузері.

star 4.9
auto_awesome AI
New

Аналізатор Cron calculator

Presets:
*/5 * * * *
MIN HOUR DOM MON DOW
0-59 0-23 1-31 1-12 0-6
translate
Human Readable
Every 5 minutes

Field Breakdown

Next 10 Execution Times

lightbulb Tips

  • •*/5 = every 5, using the step operator
  • •0 = Sunday, 1 = Monday ... 6 = Saturday
  • •@daily, @hourly, @weekly are handy shortcuts
  • •Always test cron before deploying

How to Use the Аналізатор Cron

edit

Введіть вираз

Введіть або вставте вираз cron (5 або 6 полів). Використовуйте шаблони для типових розкладів.

translate

Прочитати опис

Перегляньте зрозумілий переклад того, що робить ваш вираз cron.

schedule

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

Перегляньте наступні 10 часів виконання, щоб перевірити правильність вашого розкладу.

build

Створити вираз

Використовуйте інтерактивний конструктор, щоб створити новий cron-вираз з нуля.

The Formula

Cron-вираз — це визначення розкладу за допомогою 5 полів, розділених пробілами: хвилина (0-59), година (0-23), день місяця (1-31), місяць (1-12) та день тижня (0-6, де 0=неділя). Кожне поле може містити підстановочні знаки (*), діапазони (1-5), списки (1,3,5) та крокові значення (*/5). Деякі системи підтримують 6-те поле (секунди) на початку.

┌───────────── minute (0-59) │ ┌───────────── hour (0-23) │ │ ┌───────────── day of month (1-31) │ │ │ ┌───────────── month (1-12) │ │ │ │ ┌───────────── day of week (0-6, Sun=0) * * * * *

lightbulb Variables Explained

  • * Будь-яке значення (будь-який символ)
  • , Розділювач списку значень (наприклад, 1,3,5)
  • - Діапазон значень (наприклад, 1-5)
  • / Крокові значення (наприклад, */5 = кожні 5)

tips_and_updates Pro Tips

1

*/5 * * * * означає кожні 5 хвилин — слеш / є оператором кроку

2

0 0 * * 0 запускається о півночі щонеділі (день 0 = неділя в більшості систем)

3

Використовуйте @daily, @hourly, @weekly, @monthly як швидкі ярлики для типових розкладів

4

День тижня: 0=Нд, 1=Пн, 2=Вт, 3=Ср, 4=Чт, 5=Пт, 6=Сб

5

У стандартному cron не можна одночасно вказувати конкретний день місяця і день тижня

6

Назви місяців (JAN-DEC) і днів тижня (SUN-SAT) працюють у багатьох реалізаціях cron

7

Завжди перевіряйте вирази cron перед розгортанням — помилки зсуву на одиницю трапляються часто

Наш безплатний аналізатор cron-виразів перетворює розклади cron на зрозумілий для людини текст і показує час майбутніх виконань. Перевіряйте синтаксис cron, розумійте кожне поле та перевіряйте свої розклади перед розгортанням. Підтримує стандартні 5-поля та розширені 6-поля формати cron.

Аналізатор Cron-виразів - Переклад Cron англійською

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

Підтримує:

  • шаблони (*)
  • діапазони (1-5)
  • списки (1,3,5)
  • кроки (*/5)
  • іменовані значення (MON-FRI, JAN-DEC)

Калькулятор розкладу Cron - Час наступного запуску

Подивіться точно, коли ваша cron-задача виконається наступного разу. Наш калькулятор показує наступні 10 часів запуску з датами та мітками часу, щоб ви могли перевірити правильність свого розкладу перед розгортанням у робоче середовище.

Ніколи більше не розгортайте неправильний розклад cron.

Як працює Cron-вираз?

Cron-вираз працює шляхом зіставлення поточного часу з шаблоном із п'яти полів, розділених пробілами:

  • хвилина
  • година
  • день місяця
  • місяць
  • день тижня

Демон cron (crond) прокидається щохвилини та запускає будь-яке завдання, чиї поля повністю збігаються з поточним годинником, як описано в специфікації POSIX crontab та на сторінці посібника Linux crontab(5). Кожне поле приймає підстановочний знак (*) для "будь-якого значення", а також діапазони, списки та оператори кроку.

Vixie cron, широко розповсюджена реалізація на більшості дистрибутивів Linux, дотримується цієї поведінки. Розуміння того, що cron оцінює хвилину за хвилиною, пояснює, чому cron не може нативно планувати завдання з інтервалами менше хвилини без поля секунд.

Що означають п'ять полів Cron?

П'ять полів cron, якщо читати зліва направо, це:

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

Цей порядок визначено стандартом POSIX (IEEE Std 1003.1) та задокументовано на сторінці довідки crontab(5), яка підтримується на man7.org. Поля місяця та дня тижня також приймають трилітерні абревіатури, такі як JAN до DEC та SUN до SAT у більшості реалізацій.

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

Як використовувати оператори кроку, діапазону та списку в Cron

Оператори кроку, діапазону та списку в cron дозволяють компактно виражати складні розклади.

  • Діапазон на кшталт 1-5 означає послідовні значення (з понеділка по п'ятницю в полі дня тижня).
  • Список на кшталт 1,3,5 відповідає лише цим конкретним значенням.
  • Крок на кшталт */15 у полі хвилин означає "кожні 15 хвилин" (0, 15, 30, 45), і кроки можна комбінувати з діапазонами, як у 0-30/10.

Ці оператори задокументовано в посібнику crontab(5) та у вихідному коді Vixie cron. Наприклад, */5 9-17 * * 1-5 спрацьовує кожні п'ять хвилин між 9 ранку та 5 вечора по буднях.

Комбінування операторів зберігає рядки crontab читабельними, охоплюючи водночас складні періодичні вікна.

Що таке спеціальні рядки Cron на кшталт @daily та @reboot?

Спеціальні рядки cron — це іменовані скорочення, які замінюють синтаксис із п'яти полів для загальних розкладів.

  • @yearly (або @annually) дорівнює 0 0 1 1 *
  • @monthly дорівнює 0 0 1 * *
  • @weekly дорівнює 0 0 * * 0
  • @daily (або @midnight) дорівнює 0 0 * * *
  • @hourly дорівнює 0 * * * *

Ці псевдоніми походять від Vixie cron і задокументовані на сторінці посібника crontab(5) на man7.org. Особливий випадок, @reboot, запускає завдання один раз під час запуску системи, а не за розкладом годинника.

Зауважте, що не кожна реалізація cron підтримує ці рядки; cron POSIX не вимагає їх, тому перевірте підтримку, перш ніж покладатися на них у переносних скриптах.

Чи підтримує Cron секунди та розклади з інтервалом менше хвилини?

Стандартний Unix cron не підтримує секунди; його найменша роздільна здатність становить одну хвилину, оскільки crond оцінює розклад один раз на хвилину відповідно до специфікації crontab(5).

Щоб планувати завдання з точністю до секунд, розробники використовують розширені діалекти cron, які додають шосте поле на початку. Quartz Scheduler та синтаксис cron у Spring @Scheduled ставляють секунди на перше місце, даючи секунда хвилина година день-місяць місяць день-тижня. AWS EventBridge (раніше CloudWatch Events) використовує шість полів cron із полем року натомість.

Оскільки ці формати відрізняються, вираз із шістьма полями, написаний для Quartz, не працюватиме правильно у звичайному crontab. Завжди підтверджуйте, який саме движок аналізує ваш вираз, оскільки кількість полів та зміщення відрізняються в різних системах.

Як часові пояси впливають на завдання cron?

Часові пояси впливають на завдання cron, оскільки більшість служб cron перевіряють розклад за локальним часом системи, а не за UTC. Коли на серверах переходять на літній чи зимовий час, завдання, призначені на пропущену або повторювану годину, можуть бути пропущені або виконані двічі; це описано як у посібнику crontab(5), так і в документації бази даних часових поясів IANA.

Щоб уникнути плутанини, багато команд встановлюють для сервера або змінної crontab CRON_TZ значення UTC, дотримуючись рекомендацій стандарту ISO 8601 щодо однозначного відліку часу. Хмарні планувальники, такі як Google Cloud Scheduler та AWS EventBridge, дають змогу вказувати часовий пояс явно.

Коли важлива точність часу, завжди зазначайте, чи використовується вираз у форматі UTC, чи за місцевим часом.

Як безпечно тестувати й перевіряти вираз cron

Щоб безпечно протестувати вираз cron, перевірте його синтаксис і подивіться майбутні запуски, перш ніж додавати його до робочого файлу crontab. Цей парсер перевіряє діапазони полів і операторів, а потім виводить час наступних виконань, щоб ви могли переконатися, що розклад відповідає вашим планам.

На сервері запустіть crontab -l для перегляду наявних завдань і crontab -e для їх редагування, як описано в сторінках посібника crontab(1) та crontab(5). Перенаправляйте вивід завдань у файл логів (наприклад, додаючи >> /var/log/myjob.log 2>&1), щоб бачити помилки.

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

Поширені помилки під час написання виразів cron

Найпоширеніша помилка в cron — це неправильне розуміння порядку полів і заміна хвилин на години, через що 0 9 * * * (9 ранку) перетворюється на 9 0 * * * (00:09).

  • Ще одна частиста помилка — очікування, що день місяця і день тижня об'єднуватимуться за логікою І (AND), тоді як POSIX cron використовує АБО (OR), коли встановлені обидва параметри, згідно зі специфікацією crontab(5).
  • Розробники також часто думають, що день 7 означає неділю; у стандартному cron використовується 0-6, хоча Vixie cron для зручності приймає 7 як неділю.
  • Використання */5 у полі годин у значенні "кожні 5 годин" спрацює, але якщо забути провідний нуль у полі хвилин, завдання буде запускатися щохвилини протягом цих годин.
  • Нарешті, не екрановані знаки відсотка (%) у командах сприймаються cron як переноси рядків.

Де використовуються вирази cron у DevOps та CI/CD?

Вирази cron використовуються скрізь у DevOps та CI/CD для запуску регулярної автоматизації без ручного втручання. GitHub Actions планує робочі процеси за допомогою стандартного п'ятиполівкового cron у ключі on.schedule.cron, а розклади конвеєрів GitLab CI використовують такий самий синтаксис.

Завдання Kubernetes CronJobs, визначені в API batch/v1, запускають контейнеризовані задачі за розкладом cron, як зазначено в офіційній документації Kubernetes. Хмарні платформи, зокрема AWS EventBridge, Google Cloud Scheduler та Azure Logic Apps, надають можливості планування у стилі cron для бессерверних завдань.

Типові варіанти використання:

  • нічне резервне копіювання баз даних
  • прогрів кешу
  • створення звітів
  • оновлення сертифікатів
  • ротація логів

Оскільки кожна платформа може використовувати дещо відмінний діалект, завжди перевіряйте свій вираз за допомогою парсера цільової системи.

Frequently Asked Questions

sell

Tags