Структура выражения
минута час день месяц день_недели
Ровно пять полей через пробел. Секунды и шестипольный синтаксис Quartz не поддерживаются.
IT
Визуальный конструктор cron-выражений. Готовые пресеты (@hourly, @daily, @weekly), пояснение к каждому полю, словесное описание выражения и каталог типовых задач.
Задайте исходные данные - результат обновится автоматически.
Инструмент был полезен?
Об инструменте
Конструктор cron-выражений с переводом на русский: вы видите, что именно запустится и когда. Готовые шаблоны для типовых расписаний, документация по полям и каталог часто используемых вариантов.
Готовые пресеты: каждый час, по будням в девять, первое число месяца.
Расшифровка выражения словами, чтобы не запускать вслепую.
Справочник по всем пяти полям и спецсимволам *, -, /, ,.
Пять ближайших запусков в явно указанной локальной таймзоне пользователя.
Шаг за шагом
Методика
минута час день месяц день_недели
Ровно пять полей через пробел. Секунды и шестипольный синтаксис Quartz не поддерживаются.
*/N
Каждые N единиц: */15 в поле минут даст 0, 15, 30, 45.
1-5
В поле дней недели это значит «понедельник - пятница».
0 9 1 * MON
Если оба поля ограничены, действует классическая OR-семантика: запуск будет первого числа и каждый понедельник.
Ограничения
Ближайшие даты считаются в локальной таймзоне браузера, название таймзоны показывается рядом с результатом.
Поддерживаются числа, списки, диапазоны, шаги, JAN-DEC, SUN-SAT и оба обозначения воскресенья: 0 и 7.
В пяти-польном cron минимальный интервал равен одной минуте. Для невозможного расписания инструмент показывает сообщение об ошибке.
Советы
Перед прод-настройкой прогоняйте выражение через crontab.guru или этот калькулятор - проще, чем ловить промахи на следующий день.
Перенаправляйте stdout и stderr задачи в файл: 2>&1 >> /var/log/job.log. Иначе ошибки уйдут в /dev/null.
В Kubernetes указывайте concurrencyPolicy: Forbid, если задача длиннее интервала, - иначе появятся пересечения.
Вопросы
Для этого инструмента это синонимы. @hourly короче, но полная пяти-польная форма переносимее между планировщиками.
В обычном cron нельзя. Используйте Quartz, Airflow или встроенный sleep в самом скрипте.
Самые частые причины - часовой пояс отличается от ожидаемого, в crontab не задан PATH, или утилита из задачи не нашлась. Проверьте /var/log/syslog или journalctl.
В пятом поле напишите 1-5 или MON-FRI. Оба варианта поддерживаются этим инструментом и означают понедельник - пятницу.
Ещё