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

Напишите расписание cron и посмотрите, когда именно оно сработает.

0-59
0-23
1-31
1-12 или JAN-DEC
0-6 или SUN-SAT (7 тоже воскресенье)
At 09:00 AM, Monday through Friday

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

    Шпаргалка по синтаксису cron
    ПолеДопустимые значения
    Минута0-59
    Час0-23
    День месяца1-31
    Месяц1-12 или JAN-DEC
    День недели0-6 или SUN-SAT (7 тоже воскресенье)
    СимволЗначение
    *Любое значение
    ,Список значений, например 1,15
    -Диапазон, например 1-5
    /Шаг, например */15 для каждого 15-го значения

    Работает в браузере. То, что вы вводите, никуда не отправляется.

    Как написать cron-выражение

    1. Выберите готовый вариант или введите выражение из пяти полей.
    2. Настройте отдельные поля в блоках ниже.
    3. Проверьте объяснение и время следующих запусков, затем скопируйте выражение.

    Частые расписания cron

    РасписаниеВыражениеЗначение
    Каждую минуту* * * * *Запускается 60 раз в час
    Каждые 5 минут*/5 * * * *В :00, :05, :10 и так далее
    Каждую ночь в 2:000 2 * * *Раз в 24 часа
    По будням в 9:000 9 * * 1-5Только с понедельника по пятницу
    1-го числа месяца0 0 1 * *Полночь 1-го числа
    Каждые 6 часов0 */6 * * *Полночь, 6:00, полдень, 18:00

    Чем cron отличается в разных системах

    Формат из 5 полей ниже строит именно этот генератор, и его же напрямую используют большинство планировщиков задач.

    СистемаПоляПримечание
    Стандартный cron / crontab5Минута, час, день месяца, месяц, день недели
    Kubernetes CronJob5Тот же формат, указывается строкой в YAML
    GitHub Actions5Задаётся в on.schedule.cron, всегда работает в UTC
    Quartz (Java)6 или 7Добавляет поле секунд перед минутой
    AWS EventBridge6Добавляет поле года и использует ? для дня месяца или дня недели

    Скопируйте выражение отсюда в расписание Quartz или AWS и добавьте дополнительное поле, которое оно ожидает; позиции минуты, часа, дня, месяца и дня недели остаются теми же.

    Советы по написанию расписаний cron

    • Предпочитайте шаг длинному списку: */15 * * * * короче и понятнее, чем 0,15,30,45 * * * *.
    • Задание и дня месяца, и дня недели ограничивает меньше, чем кажется: стандартный cron запускает задачу, когда совпадает хотя бы одно условие, а не только когда совпадают оба.
    • Проверьте расписание здесь, прежде чем вставлять его на сервер. Одно неверное поле может превратить ежедневную задачу в такую, что запускается каждую минуту.
    • Серверы обычно запускают cron в UTC. Список следующих запусков выше показан в вашем собственном часовом поясе, поэтому пересчитайте его, прежде чем считать, что задача сработала вовремя.

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

    Что означают пять полей в cron-выражении?

    Слева направо: минута (0-59), час (0-23), день месяца (1-31), месяц (1-12) и день недели (0-6, где 0 это воскресенье). Звёздочка означает любое значение, поэтому * * * * * запускается каждую минуту.

    Как запускать cron-задачу каждые 5 минут?

    Используйте */5 * * * *. Часть /5 означает каждое пятое значение, поэтому задача запускается на минутах 0, 5, 10 и так далее, каждый час каждого дня.

    Что происходит, если задать и день месяца, и день недели?

    Стандартный cron запускает задачу, когда совпадает хотя бы одно из условий. 0 0 1 * 1 запускается в полночь 1-го числа каждого месяца, а также каждый понедельник.

    Какой часовой пояс использует cron?

    Часовой пояс сервера, на котором он запущен, часто это UTC. Время запуска на этой странице показано в вашем собственном часовом поясе, поэтому пересчитайте его, если сервер настроен иначе.

    Этот формат подходит для Kubernetes, GitHub Actions, Quartz или AWS?

    CronJob в Kubernetes и расписания GitHub Actions используют тот же формат из 5 полей. Quartz добавляет поле секунд, а AWS EventBridge добавляет поле года и использует ? в одном из полей дня, поэтому их нужно скорректировать.

    Как запускать задачу только по будням или только по выходным?

    Задайте день недели 1-5 для понедельника-пятницы или 0,6 для субботы и воскресенья. Оставьте день месяца и месяц как *, чтобы они больше ничего не ограничивали.

    Что означают сокращения вроде @daily и @hourly?

    Это макросы, которые некоторые реализации cron принимают вместо пяти полей. @hourly это 0 * * * *, @daily это 0 0 * * *, @weekly это 0 0 * * 0, @monthly это 0 0 1 * * и @yearly это 0 0 1 1 *. Введите любой из них в поле выражения здесь, и он развернётся автоматически.

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