Разбор III из 5
Два поля дня: ИЛИ, а не И
Если ограничены и день месяца, и день недели, cron запускает задание, когда совпало любое из них. Разбор этого правила, шагов и дат, которых не бывает.
Правило ИЛИ
Выражение 0 12 1 * 1 хочется прочитать как «в полдень первого числа, если это понедельник». Cron читает иначе: если оба поля дня ограничены, запуск происходит в день, когда совпало любое из них, — первого числа ИЛИ в понедельник.
Начиная с 28 сентября 2026 года такое задание сработает 28.09 (понедельник), 01.10 (четверг, первое число) и 05.10 (снова понедельник). Три запуска за восемь дней вместо одного за несколько месяцев.
Поле считается ограниченным, если оно не начинается со звёздочки. Поэтому в 0 12 */2 * 1 правило ИЛИ уже не действует: день месяца начинается с *, и оба условия проверяются вместе. CronLens выносит случай ИЛИ в отдельное замечание.
Шаги считаются от начала диапазона
Шаг /n отсчитывается от начала диапазона, а не от начала недели и не от текущего момента. */7 в поле дня месяца — это 1, 8, 15, 22 и 29-е число. Это не «раз в неделю»: в конце месяца промежуток до 1-го числа следующего месяца обычно короче недели.
Диапазон с шагом работает так же: 10-50/20 в поле минут — это 10, 30 и 50. Шаг не переносится через конец диапазона и не продолжается в следующем часе.
Запись 5/10 без звёздочки или диапазона классический cron не принимает. Пишите */10, если нужен отсчёт от нуля, или 5-59/10, если от пятой минуты. CronLens показывает нормализованное множество значений в картуше под полем, чтобы шаг был виден сразу.
Невозможные и редкие даты
Выражение 0 0 30 2 * синтаксически верно, но не сработает никогда: 30 февраля не бывает. Cron об этом не предупреждает — задание просто молчит. CronLens ищет следующий запуск на пять лет вперёд и прямо пишет, если его нет.
0 0 31 * * срабатывает только в семи месяцах из двенадцати: в январе, марте, мае, июле, августе, октябре и декабре. 0 0 29 2 * — раз в четыре года; после октября 2026 года следующее 29 февраля выпадает на вторник 29.02.2028.
В поле дня недели и 0, и 7 означают воскресенье. Имена sun–sat и jan–dec можно писать в любом регистре, в том числе в диапазонах и списках: mon-fri, jan,jul.