Перейти к содержимому

Создание и расшифровка 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(…). Если вы вставляете выражение и по числу полей диалект очевиден, он переключается сам, а при смене диалекта текущее выражение по возможности преобразуется.

Визуальный редактор настраивает каждое поле с помощью режимов «каждый», «каждый N», конкретные значения и диапазон, а шаблоны покрывают типичные задачи. Время запусков считается в любом часовом поясе 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, а в неиспользуемом поле дня появится ?. Если в исходном выражении заданы и день месяца, и день недели, вы увидите предупреждение, что целевой формат не может выразить такое сочетание.