Время/числа
Cron Parser
Разбор cron-выражения (5 или 6 полей, включая @-сокращения) — описание расписания человеческим языком и следующие запуски в выбранном часовом поясе.
Cron-выражение — компактный формат расписания из пяти или шести полей (минута, час, день месяца, месяц, день недели, иногда секунда), который сложно читать с первого взгляда. Инструмент переводит выражение обычным языком и показывает ближайшие моменты запуска в выбранном часовом поясе.
Как пользоваться
- Вставьте cron-выражение (например, 0 3 * * * или сокращение @daily) — сразу появится описание расписания обычным языком.
- Список ближайших запусков показывает конкретные даты и время в выбранном часовом поясе — удобно проверить, не совпадает ли задача с другой.
- Поддерживаются как 5-польные cron-выражения (стандартный Unix cron), так и 6-польные с секундами (Quartz и подобные планировщики).
Типичные сценарии
- Проверка расписания задачи перед деплоем — действительно ли cron-выражение запускает скрипт тогда, когда планировалось.
- Отладка ситуации, когда задача запускается чаще или реже, чем ожидалось.
- Планирование нового cron-задания без поиска справочника по синтаксису каждый раз.
Что стоит помнить
Поля дня месяца и дня недели в классическом cron объединяются через ИЛИ, а не И, если ни одно из них не «*» — частая причина неожиданных дополнительных запусков.
Сервер, на котором выполняется cron, может работать в другом часовом поясе, чем ожидает разработчик — всегда проверяйте, в каком поясе трактуется расписание.
Статья об этом инструменте: Cron-выражения: как расшифровать расписание запуска задач
Часто задаваемые вопросы
Чем 6-полевое cron-выражение отличается от 5-полевого?
Стандартный cron использует 5 полей (минута, час, день месяца, месяц, день недели). Некоторые планировщики добавляют шестое поле секунд в начале выражения — инструмент распознаёт оба формата автоматически.
Что означают сокращения вроде @daily?
Это удобные синонимы распространённых расписаний: @daily соответствует "0 0 * * *" (ежедневно в полночь), @hourly — "0 * * * *", @weekly, @monthly и @yearly действуют аналогично.
В каком часовом поясе считаются следующие запуски?
В том, который выбран в поле «Часовой пояс». То же самое cron-выражение даёт разное абсолютное время запуска в зависимости от пояса, поэтому важно указать именно тот, в котором фактически работает планировщик.
Влияет ли переход на летнее/зимнее время на запуск задачи?
Да, если время запуска приходится на несуществующий или повторяющийся час во время перевода часов. Для критичных задач надёжнее планировать время вне типичного окна перехода или явно использовать UTC.
Почему выражение с обоими указанными полями дня месяца и дня недели сработало, хотя я ожидал только одно совпадение?
В классическом cron эти два поля объединяются через ИЛИ, а не И, когда оба не являются звёздочкой — задача запускается, как только совпадает хотя бы одно из условий, даже если второе не выполняется.