Справочник по Cron: пять полей, специальные символы и подводные камни
Cron запускает команды по расписанию, описанному в пяти полях — минута, час, день месяца, месяц и день недели, — за которыми следует сама команда. Одна строка вроде 30 9 * * 1 означает половину десятого каждый понедельник утром, и почти каждая Unix-система плюс бесчисленные планировщики говорят на этом диалекте.
1. Поля и допустимые значения
Минуты — от 0 до 59, часы — от 0 до 23, дни месяца — от 1 до 31, месяцы — от 1 до 12, а дни недели — от 0 до 7, где и 0, и 7 означают воскресенье. Звездочка означает каждое значение в этой позиции, поэтому 0 * * * * срабатывает в начале каждого часа.
2. Шаги, диапазоны и списки
Слэш задает шаг — */15 в поле минут означает каждые пятнадцать минут, — дефис задает диапазон, например дни недели 1-5 с понедельника по пятницу, а запятые объединяют списки вроде 0,30. Они свободно комбинируются, поэтому 0 9-17 * * 1-5 читается как раз в час в течение рабочего дня, только по будням.
3. OR-причуда полей дня
Когда ограничены и поле дня месяца, и поле дня недели, cron срабатывает при совпадении любого из них — не обоих. Строка, задуманная как первый понедельник месяца, требует особой осторожности, потому что ограничение обоих полей расширяет, а не сужает расписание. Оставление одного из них звездочкой оставляет второе поле полностью главным.
4. Пресеты и ловушки окружения
Сокращения вроде daily или weekly разворачиваются в шаблоны полей, но классическая пятиполевая форма лучше всего переносится между системами. Помните, что cron работает с минимальным окружением: пути, локали и shell-причуды из вашего терминала не переносятся, поэтому всегда используйте абсолютные пути и сначала тестируйте команду вручную. Стройте выражения визуально и предпросматривайте следующие запуски с помощью нашего генератора cron, который вычисляет предстоящие даты прямо в вашем браузере.