Menu
Русский

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

Создавайте, расшифровывайте и предпросматривайте cron-расписания с ближайшими запусками.

Последнее обновление

Шаблоны
Выражение
Минута*/15
Час*
День месяца*
Месяц*
День недели*
Простыми словамиКорректно

Каждые 15 минут

Следующие 5 запусков (местное время)
  • 12026-04-26 21:45 Sun
  • 22026-04-26 22:00 Sun
  • 32026-04-26 22:15 Sun
  • 42026-04-26 22:30 Sun
  • 52026-04-26 22:45 Sun

Что такое cron-выражение?

Cron-выражение — это компактный способ задать повторяющееся расписание. Тот же синтаксис когда-то появился в Unix cron — самом первом планировщике в Linux, — а сегодня он используется почти везде, где запускаются фоновые задачи: Kubernetes CronJobs, расписания GitHub Actions, AWS EventBridge, Cloudflare Workers, Vercel cron и большинство CI/CD-платформ.

На вид формат пугающий, а по сути это просто пять полей через пробел: минута, час, день месяца, месяц, день недели. В каждом поле может стоять число, список (1,15), диапазон (9-17), шаг (*/5) или звёздочка (*). Хороший cron-инструмент переводит выражение в обычный текст и показывает ближайшие срабатывания — так можно проверить расписание до того, как оно поедет в прод.

Некоторые платформы расширяют базовый синтаксис из 5 полей: добавляют поле *секунд* в начало (Quartz, Spring, 6-field вариант в Kubernetes) или поле *года* в конец. Прежде чем копировать выражение, всегда уточняйте, какой формат принимает ваш планировщик.

Что вы освоите, собирая cron-расписания

  • Стандартное cron-выражение состоит из 5 полей: минута, час, день месяца, месяц, день недели.
  • * означает «любое значение» для этого поля — именно из-за звёздочки расписание чаще всего срабатывает чаще, чем планировалось.
  • */N означает «каждые N единиц»: */5 в поле минут — это «каждые 5 минут».

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

  1. Начните с пресета

    Выберите пресет, близкий к нужному расписанию: Каждую минуту, Каждый час, Ежедневно в 9:00, По будням в 9:00, Раз в месяц. Выражение тут же появится в редакторе.

  2. Поправьте каждое поле

    Отредактируйте минуту, час, день месяца, месяц и день недели. Используйте * для «любого значения», списки через запятую, диапазоны (9-17) или шаги (*/15).

  3. Прочитайте расшифровку на русском

    Инструмент превращает выражение в фразу (В 09:00 каждый будний день). Если фраза не совпадает с тем, что вы хотели — значит, в выражении ошибка.

  4. Посмотрите ближайшие срабатывания

    Сверьте 5–10 ближайших времён запуска в своём часовом поясе. Будьте внимательны, если расписание попадает на переход на летнее/зимнее время.

  5. Скопируйте в свой планировщик

    Вставьте выражение в crontab, в workflow GitHub Actions, в Kubernetes CronJob — куда вам нужно.

Шпаргалка по полям cron

Пять полей стандартного cron-выражения по порядку. Источник: POSIX crontab(5) man page.

ПозицияПолеДиапазонСпецсимволы
1Минута0–59* , - /
2Час0–23* , - /
3День месяца1–31* , - / ? (в некоторых диалектах)
4Месяц1–12 или JANDEC* , - /
5День недели0–6 (Вс=0) или SUNSAT* , - /

Примеры cron-выражений

Каждые 5 минут

Выражение

*/5 * * * *

Читается как

Каждые 5 минут — на нулевой минуте часа и далее каждые 5 минут.

Шаги (*/5) — самый удобный способ написать «каждые N», не перечисляя все числа. Подходит для health-чеков и опросных задач.

По будням в 9:00

Выражение

0 9 * * 1-5

Читается как

В 09:00 с понедельника по пятницу.

Диапазон 1-5 в дне недели — это понедельник–пятница. Удобно для напоминаний в рабочее время и дайджестов только по будням.

Первого числа каждого месяца в полночь

Выражение

0 0 1 * *

Читается как

В 00:00 первого числа каждого месяца.

День месяца 1 плюс * во всех остальных полях — это настоящая ежемесячная задача. Подходит для биллинга, отчётов и ротаций.

Дважды в час, в рабочие часы, по будням

Выражение

0,30 9-17 * * 1-5

Читается как

На 0-й и 30-й минуте с 09:00 до 17:00, с понедельника по пятницу.

Список через запятую (0,30) плюс диапазон (9-17) плюс будни. Так обычно настраивают обновление BI-дашборда или разбор очереди — всё то, что нужно только в рабочие часы.

Типичные ошибки в cron

  • Забыли про часовой пояс. Большинство cron-демонов срабатывают в часовом поясе *сервера*, а не вашем. Если платформа позволяет — задавайте таймзону явно.
  • Указали и день месяца, и день недели одновременно. В классическом Unix cron расписание сработает в день, который подходит *хотя бы под одно* из условий — и это сюрприз для большинства новичков.
  • Написали */45 и ждёте срабатывания каждые 45 минут. Шаги отсчитываются от 0, поэтому */45 сработает в :00 и :45 — это не равные интервалы по 45 минут.

FAQ по cron-выражениям

Как написать cron-выражение?
Стандартное cron-выражение — это пять полей через пробел: минута, час, день месяца, месяц, день недели. В каждом поле можно поставить * (любое значение), конкретное число, список через запятую (1,15), диапазон (9-17) или шаг (*/5).
Что означает */5 * * * *?
Это «каждые 5 минут». */5 в поле минут срабатывает на 0-й минуте и далее каждые 5 минут — 0, 5, 10, 15, …, 55, — а * в остальных полях означает каждый час, каждый день, каждый месяц и каждый день недели.
В каком часовом поясе работает cron?
По умолчанию cron использует часовой пояс той системы, на которой запущен. В большинстве облачных планировщиков таймзону можно задать явно (TZ=Europe/Berlin, schedule expressions в AWS и т. д.). Если не уверены — храните расписания в UTC.
Может ли cron-выражение запускаться каждую секунду?
В стандартном 5-польном cron минимальная единица — минута, поэтому максимальная частота — раз в минуту. У Quartz cron, Spring cron и в некоторых версиях Kubernetes есть дополнительное 6-е поле *секунд* для расписаний с разрешением меньше минуты.
В чём разница между 0 0 * * 0 и 0 0 * * 7?
Оба варианта означают воскресенье в полночь. День недели в большинстве реализаций cron нумеруется от 0 до 6 (Вс–Сб), но 7 тоже принимается как воскресенье — для совместимости с некоторыми диалектами.

Другие инструменты разработчика

Учитесь программировать с Coddy

НАЧАТЬ