Как создавать cron-выражения
Cron-выражения — это стандартный способ определения повторяющихся расписаний в Linux, облачных платформах, CI/CD-конвейерах и планировщиках задач. Синтаксис компактный, но неинтуитивный — визуальный генератор показывает вам точно, когда ваша задача будет выполняться.
Cron-синтаксис
Cron-выражение имеет 5 полей:
┌───────────── минута (0-59)
│ ┌───────────── час (0-23)
│ │ ┌───────────── день месяца (1-31)
│ │ │ ┌───────────── месяц (1-12)
│ │ │ │ ┌───────────── день недели (0-6, воскресенье=0)
│ │ │ │ │
* * * * *
Распространённые cron-расписания
| Расписание | Выражение | Значение |
|---|---|---|
| Каждую минуту | * * * * * |
Выполняется каждые 60 секунд |
| Каждые 5 минут | */5 * * * * |
В :00, :05, :10, :15... |
| Каждый час | 0 * * * * |
В начале каждого часа |
| Каждый день в полночь | 0 0 * * * |
Один раз в день в 00:00 |
| Каждый день в 9 утра | 0 9 * * * |
Один раз в день в 09:00 |
| Каждый понедельник в 8 утра | 0 8 * * 1 |
Еженедельно в понедельник |
| 1-го числа каждого месяца | 0 0 1 * * |
Ежемесячно в полночь 1-го |
| Рабочие дни в 18:00 | 0 18 * * 1-5 |
С понедельника по пятницу |
Как создать cron-выражение
- Определите ваше расписание — используйте визуальные элементы управления, чтобы выбрать значения минут, часов, дней, месяцев и дней недели. Или начните с предустановки, такой как «каждый час» или «каждый день в полночь».
- Просмотрите выполнения — генератор отображает следующие 5 выполнений для проверки, что расписание правильное.
- Скопируйте выражение — вставьте его в ваш crontab, конфигурацию CI/CD или облачный планировщик.
Специальные символы
| Символ | Значение | Пример |
|---|---|---|
* |
Каждое значение | * * * * * = каждую минуту |
*/n |
Каждые n | */15 * * * * = каждые 15 мин |
, |
Несколько значений | 0 8,12,18 * * * = 8, полдень, 18 |
- |
Диапазон | 0 9-17 * * * = каждый час с 9 до 17 |
Советы
- Всегда проверяйте следующие выполнения — cron-выражения легко перепутать. Предпросмотр показывает вам точно, когда задача сработает, проверьте перед развёртыванием.
- Начинайте с предустановок — начните с распространённого расписания, такого как «ежедневное» или «почасовое», и корректируйте, а не пишите с нуля.
- Внимание к часовому поясу — cron-часы в часовом поясе системы (обычно UTC на серверах). Если вы хотите 9 утра по Москве, это
0 6 * * *в UTC. - Тестируйте с короткими интервалами — настраивая новый cron, тестируйте с
*/5 * * * *(каждые 5 минут), чтобы подтвердить, что он работает, затем переходите к финальному расписанию.
Часто задаваемые вопросы
Какой формат у cron-выражения?
Стандартное cron-выражение имеет 5 полей, разделённых пробелами, представляющих минуту (0-59), час (0-23), день месяца (1-31), месяц (1-12) и день недели (0-6, где 0 — воскресенье). Звёздочка (*) означает «каждое» значение для этого поля.
Что означает */5 в cron?
Синтаксис */5 означает «каждые 5». В поле минут */5 означает каждые 5 минут (0, 5, 10, 15...). В поле часов */5 означает каждые 5 часов. Это работает в любом поле.
Одинаковы ли cron-выражения на всех платформах?
Формат с 5 полями стандартен в Linux cron, AWS EventBridge, GitHub Actions и большинстве систем планирования. Некоторые платформы добавляют 6-е поле для секунд или года. Сверяйтесь с документацией вашей платформы.
Как запланировать на последний день каждого месяца?
У стандартного cron нет ключевого слова «последний день». Используйте обходное решение, такое как ежедневное выполнение с проверкой даты в вашем скрипте, или используйте специфичные для платформы расширения (AWS EventBridge поддерживает L для «last»).