Парсер cron-выражений
Формат: минуты час день месяца месяц день недели
Вам достаётся crontab, набитый строками вида 0 */2 * * 1-5, 15 4 1 * *, */30 8-18 * * *. Этот парсер принимает стандартное cron-выражение из 5 полей и возвращает понятное описание на простом английском (например, “every 2 hours on weekdays”), а также следующие 5 моментов, когда задача действительно запустится. Удобно, чтобы разобраться в старых расписаниях и проверить новое перед развёртыванием.
Как разобрать cron-выражение
-
1
Вставьте выражение
Стандартное выражение из 5 полей (`* * * * *`): минута, час, день месяца, месяц и день недели.
-
2
Прочитайте описание на английском
Парсер переписывает каждое поле простым английским, например "At minute 0, every 2 hours, on day(s) of week 1-5."
-
3
Проверьте предпросмотр ближайших запусков
5 ближайших моментов срабатывания. Если они не совпадают с замыслом, уточните выражение.
-
4
Исправьте недопустимые поля
Выражения с неверным числом полей или значениями вне диапазона отклоняются с сообщением, которое называет проблемное поле.
Расшифровка каждого поля
У каждого поля свой допустимый диапазон и специальные символы:
| Поле | Диапазон | Поддерживаемые подстановочные знаки |
|---|---|---|
| Минута | 0-59 | * , - / |
| Час | 0-23 | * , - / |
| День месяца | 1-31 | * , - / |
| Месяц | 1-12 | * , - / |
| День недели | 0-7 | * , - / |
*= любое значение (*в поле минут означает каждую минуту).1,5,10= список значений.1-5= диапазон значений.*/15или0-45/15= шаг, отсчитываемый от начала диапазона поля.- Дни недели
0и7оба означают воскресенье, поэтому принимаются обе конвенции. Названия месяцев и дней недели, такие как JAN или MON, не принимаются; используйте числа.
Примеры с расшифровкой
| Выражение | По-английски |
|---|---|
0 */2 * * 1-5 |
At minute 0 every 2 hours, Monday through Friday |
15 4 1 * * |
At 04:15 on the 1st day of every month |
*/30 8-18 * * * |
Every 30 minutes between 08:00 and 18:59 |
0 0 1,15 * * |
At midnight on the 1st and 15th of every month |
0 22 * * 0 |
At 22:00 every Sunday |
Что принимает парсер
- Ровно 5 полей: минута, час, день месяца, месяц и день недели. Выражения Quartz из 6 или 7 полей (с секундами или годом) отклоняются.
- Допустимые диапазоны: каждое значение должно помещаться в своё поле, например минута 0-59, час 0-23, день месяца 1-31, месяц 1-12 и день недели 0-7.
- Положительные шаги: значение после
/должно быть положительным числом (*/0отклоняется). - Без именованных сокращений:
@daily,@rebootи подобные сокращения не принимаются. Сначала разверните их в форму из 5 полей (например,@daily=0 0 * * *).
День месяца и день недели вместе
Когда заданы и день месяца, и день недели, этот парсер планирует запуск только при совпадении обоих: 0 0 1 * MON срабатывает только тогда, когда 1-е число приходится на понедельник. Большинство реализаций cron в Linux трактуют эти два поля как ИЛИ (задача запускается при совпадении любого из них). Поэтому сверьте выражение с планировщиком, которым вы действительно пользуетесь.
Примечание о часовом поясе
Времена в предпросмотре вычисляются по часам сервера, который работает в UTC. Если ваш crontab работает на машине с другим часовым поясом, показанные здесь времена могут отличаться от времён на той машине.
Часто задаваемые вопросы
Нет. Принимаются только стандартные выражения из 5 полей. Выражения Quartz с секундами (6 полей) или с годом (7 полей) отклоняются с ошибкой.
Обычно по одной из этих причин: предпросмотр использует часы сервера в UTC, а ваш crontab работает в другом часовом поясе; заданы и день месяца, и день недели (этот парсер требует совпадения обоих); или шаг, который начинается заново в начале каждого часа или дня.
Да, если это стандартное выражение из 5 полей, которое и использует Kubernetes (по умолчанию UTC). Учтите, что предпросмотр здесь использует часы сервера в UTC: если кластер работает в другом часовом поясе, времена могут отличаться.
Linux cron поддерживает именованные сокращения: @reboot (при запуске), @yearly / @annually (0 0 1 1 *), @monthly, @weekly, @daily, @hourly. Этот парсер их не принимает, поэтому сначала разверните сокращение в эквивалентное выражение из 5 полей и лишь затем вставляйте его сюда.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Генератор цветовой палитры
Создавайте монохромные, аналоговые, комплементарные, триадные или тетрадные палитры из базового HEX-цвета и экспортируйте готовые CSS-переменные.
Генератор случайных букв
Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.