Генератор cron-выражений
Напишите расписание cron и посмотрите, когда именно оно сработает.
Следующие 10 запусков
Шпаргалка по синтаксису cron
| Поле | Допустимые значения |
|---|---|
| Минута | 0-59 |
| Час | 0-23 |
| День месяца | 1-31 |
| Месяц | 1-12 или JAN-DEC |
| День недели | 0-6 или SUN-SAT (7 тоже воскресенье) |
| Символ | Значение |
|---|---|
* | Любое значение |
, | Список значений, например 1,15 |
- | Диапазон, например 1-5 |
/ | Шаг, например */15 для каждого 15-го значения |
Работает в браузере. То, что вы вводите, никуда не отправляется.
- Объяснение простым языком
- Следующие 10 запусков
- Готовые варианты для частых задач
Как написать cron-выражение
- Выберите готовый вариант или введите выражение из пяти полей.
- Настройте отдельные поля в блоках ниже.
- Проверьте объяснение и время следующих запусков, затем скопируйте выражение.
Частые расписания cron
| Расписание | Выражение | Значение |
|---|---|---|
| Каждую минуту | * * * * * | Запускается 60 раз в час |
| Каждые 5 минут | */5 * * * * | В :00, :05, :10 и так далее |
| Каждую ночь в 2:00 | 0 2 * * * | Раз в 24 часа |
| По будням в 9:00 | 0 9 * * 1-5 | Только с понедельника по пятницу |
| 1-го числа месяца | 0 0 1 * * | Полночь 1-го числа |
| Каждые 6 часов | 0 */6 * * * | Полночь, 6:00, полдень, 18:00 |
Чем cron отличается в разных системах
Формат из 5 полей ниже строит именно этот генератор, и его же напрямую используют большинство планировщиков задач.
| Система | Поля | Примечание |
|---|---|---|
| Стандартный cron / crontab | 5 | Минута, час, день месяца, месяц, день недели |
| Kubernetes CronJob | 5 | Тот же формат, указывается строкой в YAML |
| GitHub Actions | 5 | Задаётся в on.schedule.cron, всегда работает в UTC |
| Quartz (Java) | 6 или 7 | Добавляет поле секунд перед минутой |
| AWS EventBridge | 6 | Добавляет поле года и использует ? для дня месяца или дня недели |
Скопируйте выражение отсюда в расписание 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 *. Введите любой из них в поле выражения здесь, и он развернётся автоматически.