Генератор cron-выражений

Конструктор cron-выражений, человеческое объяснение расписания и расчёт пяти ближайших запусков. Формат Vixie cron, расширения L и #.

Пустой ввод: введите расписание, например 0 3 * * *.

Конструктор

Ближайшие 5 запусков

Расчёт: пояс браузера.

    Последние выражения

    Готовые расписания

    Найдено: 41 из 41

    Что это и как пользоваться

    Конструктор собирает расписание из пяти полей и сразу показывает ближайшие пять запусков — по ним видно, попали ли вы в нужный час, а не только как выглядит строка.

    Кроме стандартного синтаксиса Vixie страница понимает расширения Quartz: L в дне месяца означает последний день (L-3 — за три дня до конца), 5#3 — третья пятница месяца, 5L — последняя пятница.

    Поля понимают списки (1,15,30), диапазоны (9-17) и шаги, причём шаг применяется и к диапазону: 0-30/10 даст минуты 0, 10, 20 и 30, а не только те, что кратны десяти во всём часе.

    Расчёт идёт в выбранном часовом поясе, а не в поясе сервера: по умолчанию берётся пояс браузера, и его можно сменить, чтобы увидеть, когда задача сработает по Москве или по UTC.

    Недопустимое значение вроде 60 в минутах указывает на конкретное поле, а не на всё выражение целиком, поэтому ошибку видно сразу при наборе.

    Когда пригодится

    • Собрать выражение для бэкапа и убедиться по списку запусков, что оно бьёт в 03:00, а не в 15:00.
    • Проверить чужой crontab: вставить строку и увидеть, когда она реально срабатывает в вашем поясе.
    • Задать «последний день месяца» через L вместо перечисления 28–31.
    • Перевести «каждые 15 минут» в */15 и посмотреть, что запуски идут в 0, 15, 30 и 45 минут.
    • Сравнить */5 и 0-30/5: разница видна только по списку запусков, а не по записи выражения.
    • Разобраться, почему задача запускается дважды: при двух ограниченных полях дня срабатывает совпадение любого из них.

    Чего инструмент не делает

    • Задачи не запускаются: страница только разбирает выражение и считает моменты срабатывания.
    • Шестипольный синтаксис с секундами не поддерживается — полей ровно пять, как в Vixie cron.
    • Переменные окружения, рабочая директория и путь к логу в выражение не входят: это строки crontab, а не часть расписания.
    • Праздники и рабочие дни не учитываются: «каждый будний день» задаётся полем дня недели, а исключения придётся проверять в самом скрипте.
    • Если заданы и день месяца, и день недели, запуск происходит при совпадении хотя бы одного — так устроен Vixie cron, и это частый источник лишних запусков.

    Примеры

    Вход
                        0 3 * * *
                      
    Выход
                        каждый день в 03:00
                      
    Вход
                        0 10 * * 5#3
                      
    Выход
                        третья пятница месяца в 10:00
                      

    Частые вопросы

    Из чего состоит cron-выражение?

    Обычно пять полей: минута, час, день месяца, месяц и день недели. Значение * означает «любой». Например, 0 3 * * * означает каждый день ровно в 03:00.

    Чем отличаются * и ? в дате?

    В cron вопросительный знак означает «без ограничения по этому полю» и нужен, чтобы два поля даты не конфликтовали между собой. Звёздочка означает «каждый», и задавать оба поля даты как * одновременно бессмысленно.

    Что значит запись с шагом */5?

    Шаг означает «каждые N». В минутах */15 даёт 0, 15, 30 и 45. В днях 1-15/3 даёт 1, 4, 7, 10 и 13 — то есть каждый третий день в указанном диапазоне.

    Почему 0 0 29 2 * срабатывает редко?

    Это 29 февраля, которое бывает только в високосные годы. Cron выполнит задачу лишь в те годы, где такая дата существует, и пропустит все остальные.

    В каком часовом поясе работает cron?

    Серверный cron обычно живёт в UTC или в системном поясе хоста. Если нужно «по Москве», учитывайте смещение при настройке. Этот инструмент показывает ближайшие запуски в выбранном вами поясе.

    Можно ли задать каждый N-й день недели?

    Да: 0 9 * * 1#1 означает первый понедельник месяца — это расширение Quartz. Обычный cron такое не всегда понимает, поэтому проверяйте документацию вашего планировщика.

    Чем cron отличается от systemd timers?

    Cron — классический планировщик по расписанию, а systemd timers дают зависимости между заданиями, логи через journald и триггеры по событиям. Выбор зависит от среды и от того, нужны ли такие возможности.