Как создавать cron-выражения

· 4 мин чтения

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-выражение

  1. Определите ваше расписание — используйте визуальные элементы управления, чтобы выбрать значения минут, часов, дней, месяцев и дней недели. Или начните с предустановки, такой как «каждый час» или «каждый день в полночь».
  2. Просмотрите выполнения — генератор отображает следующие 5 выполнений для проверки, что расписание правильное.
  3. Скопируйте выражение — вставьте его в ваш crontab, конфигурацию CI/CD или облачный планировщик.

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

Символ Значение Пример
* Каждое значение * * * * * = каждую минуту
*/n Каждые n */15 * * * * = каждые 15 мин
, Несколько значений 0 8,12,18 * * * = 8, полдень, 18
- Диапазон 0 9-17 * * * = каждый час с 9 до 17

Советы

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

Какой формат у 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»).