Генератор и расшифровка cron-выражений

Соберите расписание crontab кликами или вставьте готовое. Вы получите понятное описание, проверку каждого поля и 10 ближайших запусков в вашем часовом поясе.

Работает в браузереБез регистрацииНичего не загружается

минутачасдень (месяца)месяцдень (недели)

Визуальный конструктор

Следующие 10 запусков

    Как пользоваться: Генератор cron-выражений

    1. Введите cron-выражение, например */15 * * * *, или выберите шаблон.
    2. Прочитайте описание, чтобы убедиться, что расписание делает то, что нужно. Некорректные поля подсвечиваются с указанием причины.
    3. Используйте вкладки Визуального конструктора, чтобы задать минуту, час, день месяца, месяц и день недели в режимах Каждую минуту/час/…, Шаг N, Выбрать или Диапазон.
    4. Проверьте 10 ближайших запусков и выберите часовой пояс сервера, если он отличается от вашего.
    5. Скопируйте выражение в crontab, Kubernetes CronJob, schedule в GitHub Actions или конфиг CI.

    Синтаксис cron за минуту

    Стандартное cron-выражение состоит из пяти полей, разделённых пробелами:

    ┌───────────── minute (0-59)
    │ ┌─────────── hour (0-23)
    │ │ ┌───────── day of month (1-31)
    │ │ │ ┌─────── month (1-12 or JAN-DEC)
    │ │ │ │ ┌───── day of week (0-7 or SUN-SAT, 0 and 7 are Sunday)
    │ │ │ │ │
    * * * * *  command
    СимволЗначениеПример
    *любое значение* * * * * каждую минуту
    ,список0 9,17 * * * в 09:00 и 17:00
    -диапазон0 9 * * 1-5 по будням в 09:00
    /шаг*/10 * * * * каждые 10 минут
    @dailyмакросто же, что 0 0 * * *; также @hourly, @weekly, @monthly, @yearly, @reboot

    Ловушка «день месяца / день недели»

    Когда ограничены оба поля дней (ни одно не начинается с *), cron запускает задание, когда совпадает любое из них. Поэтому 0 0 13 * 5 сработает каждое 13-е число и каждую пятницу, а не только в пятницу 13-го. Генератор следует этому правилу Vixie cron, а в описании стоит «или», чтобы вы это заметили.

    Часовые пояса и переход на летнее время

    Cron использует локальный часовой пояс сервера, если не настроено иное (CRON_TZ= в некоторых реализациях cron, timeZone в Kubernetes CronJob; GitHub Actions всегда использует UTC). Выберите этот пояс в предпросмотре запусков. Задания, попадающие в «дыру» перехода на летнее время (например, 02:30 в ночь перевода часов вперёд), в предпросмотре пропускаются, потому что такого местного времени не существует.

    Популярные расписания

    • */5 * * * *: каждые 5 минут
    • 0 */2 * * *: каждые 2 часа, ровно в начале часа
    • 0 9 * * 1-5: в 09:00 по будням
    • 0 0 1 * *: в полночь первого числа каждого месяца
    • 0 3 * * 0: в 03:00 каждое воскресенье, типичное окно для бэкапа

    Часто задаваемые вопросы

    Как запускать cron-задание каждые 5 минут?
    Используйте */5 * * * *. Шаг /5 в поле минут означает каждую 5-ю минуту, начиная с 0: 00, 05, 10 и так далее.
    Поддерживает ли cron секунды?
    Стандартный crontab — нет; минимальная единица — одна минута. Quartz, Spring и некоторые облачные планировщики добавляют поле секунд (6 или 7 полей). Этот инструмент проверяет стандартный формат из 5 полей и сообщает, если видит 6 полей.
    Воскресенье — это 0 или 7?
    И то, и другое. В поле дня недели 0 и 7 означают воскресенье; также можно писать названия вроде SUN или MON-FRI.
    Почему задание запускается чаще, чем ожидалось?
    Если вы ограничили и день месяца, и день недели, cron запускается, когда совпадает любой из них. Поставьте в одном из полей *, чтобы учитывалось только другое.
    В каком часовом поясе показаны ближайшие запуски?
    По умолчанию в часовом поясе вашего браузера. Выберите пояс сервера (часто UTC) в списке, чтобы увидеть, когда именно задание сработает там.

    Похожие инструменты