RunToolz iconRunToolz
Welcome to RunToolz!
CronАвтоматизацияDevOps

Cron-выражения: планируй всё без угадываний

Эти криптические строки планирования наконец объяснены. Пиши cron-выражения, которые работают с первого раза.

RunToolz Team25 января 2026 г.3 min read

0 0 * * * — что это значит?

Если ты использовал AWS Lambda, GitHub Actions или любой планировщик задач, ты видел cron-выражения. Пять или шесть криптических полей, которые как-то планируют задачи.

Они не такие сложные, как кажутся.

Пять полей

┌───────────── минута (0 - 59)
│ ┌───────────── час (0 - 23)
│ │ ┌───────────── день месяца (1 - 31)
│ │ │ ┌───────────── месяц (1 - 12)
│ │ │ │ ┌───────────── день недели (0 - 6, воскресенье = 0)
│ │ │ │ │
* * * * *

Каждое поле ограничивает, когда выполняется задача. * означает "каждый". Число означает "только это значение".

Хотите попробовать сами?Разобрать Cron-выражение

Чтение примеров

0 0 * * * — Минута 0, час 0, любой день, любой месяц, любой день недели = Полночь каждый день

30 8 * * 1-5 — 8:30 утра, понедельник-пятница = Будничные утра

0 */2 * * * — Каждые 2 часа = 2 часа ночи, 4 часа ночи, 6 часов утра...

0 9 1 * * — 9 утра 1-го числа каждого месяца = Время ежемесячного отчёта

Специальные символы

* — Каждое значение (каждую минуту, каждый час и т.д.)

, — Несколько значений. 1,15 означает 1-е и 15-е.

- — Диапазон. 1-5 означает от 1 до 5.

/ — Шаг. */15 означает каждые 15. */15 в поле минут = каждые 15 минут.

Частые паттерны

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

Каждый час в :30: 30 * * * *

Ежедневно в 3 утра: 0 3 * * *

Еженедельно в воскресенье в полночь: 0 0 * * 0

Первое число месяца в 9 утра: 0 9 1 * *

По будням в 6 вечера: 0 18 * * 1-5

Подводные камни

День недели vs день месяца. Если ты устанавливаешь оба, большинство систем объединяют их через ИЛИ. 0 0 1 * 1 запускается 1-го числа И каждый понедельник, а не только в понедельники, которые являются 1-м числом.

Часовой пояс имеет значение. Большинство cron-систем используют серверное время или UTC. Знай, с каким ты имеешь дело.

6 полей vs 5 полей. Некоторые системы добавляют поле секунд в начало. 0 0 0 * * * будет полночью с полем секунд.

Воскресенье = 0 или 7. Зависит от системы. Оба обычно работают для воскресенья.

Тестирование перед развёртыванием

Не угадывай, означает ли 0 0 */2 * * каждые 2 дня или каждые 2 часа. Используй парсер cron.

Прогони несколько ожидаемых времён запуска. Убедись, что они соответствуют твоим намерениям.

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

Альтернативы Cron

Английский синтаксис. Некоторые планировщики принимают "каждый день в 3 часа дня" вместо 0 15 * * *. Понятнее, но менее переносимо.

Rate-выражения. AWS использует rate(5 minutes) наряду с cron-выражениями. Проще для простых интервалов.

Systemd таймеры. Linux-альтернатива cron с лучшим логированием и управлением зависимостями.


Cron-выражения плотные, но изучаемые. Пять полей, каждое ограничивает, когда выполняются задачи. Тестируй свои выражения, следи за часовыми поясами, и ты будешь планировать всё надёжно.