Понимание выражений cron: пишите расписания как разработчик
Выражения Cron контролируют выполнение автоматизированных задач на серверах, облачных платформах и инструментах планирования, однако большинство разработчиков прибегают к копированию примеров и надеются, что они сработают. Понимание синтаксиса cron означает, что вы можете уверенно писать любое расписание с нуля, быстрее отлаживать сбойные задания и избегать дорогостоящих ошибок, таких как резервное копирование, которое никогда не запускается.
Что такое выражения cron и почему они важны
Выражение cron — это компактная строка из пяти или шести полей, которая точно сообщает системе, когда следует выполнить задачу. Это стандартный формат для серверов Unix, Linux, GitHub Actions, AWS EventBridge, Kubernetes и платформ CI/CD по всему миру. Вместо того, чтобы писать прозу вроде «запускайте это каждый вторник в 2 часа ночи», вы пишете 0 2 * * 2, и демон cron мгновенно интерпретирует его. Изучение этой нотации, которая практически не менялась на протяжении десятилетий, — это разовая инвестиция, которая окупается каждый раз, когда вы что-то планируете.
Пять полей и их диапазоны
Стандартный cron использует пять обязательных полей, разделенных пробелами. Прочитайте их слева направо: минуты, часы, день месяца, месяц и день недели:
Minute(0–59) — в какую минуту часа бежатьHour(0–23) — какой час суток (24-часовой формат)Day of month(1–31) — какой календарный деньMonth(1–12) — какой месяц годаDay of week(0–7) — какой день недели, где 0 и 7 означают воскресенье.
Каждое поле принимает определенное значение, например диапазон 1-5, список типа 1,3,5или подстановочный знак * что означает «каждое значение в этом поле». Оператор косой черты разделяет диапазоны: */15 в поле минут означает каждые 15 минут.
Общие шаблоны, которые вы напишете
Большинство реальных расписаний повторяются лишь несколькими способами. Утро в будние дни в 9 утра 0 9 * * 1-5. Каждый час 0 * * * *. Первый день месяца в полночь: 0 0 1 * *. Каждые 15 минут в течение всего дня: */15 * * * *. Один раз в день в воскресенье в 2:30 ночи: 30 2 * * 0. Если вы когда-нибудь сомневаетесь в правильности вашего выражения, вставьте его в cron-парсер чтобы увидеть следующие пять запланированных запусков и убедиться, что они соответствуют вашим намерениям перед развертыванием.
Создайте свое собственное выражение cron
Начните с английского, затем переведите на cron. Вы хотите «9:30 утра каждый будний день»? Это 30 минут, 9 часов, в любой день месяца, в любой месяц, с понедельника по пятницу. Поля становятся 30 9 * * 1-5. Для «дважды в день в 7:00 и 18:00»: 0 7,18 * * * (часы разделяются запятой). Полдень 15-го числа каждого месяца: 0 12 15 * *. После написания любого выражения всегда проверяйте его с помощью синтаксического анализатора, чтобы выявить опечатки перед развертыванием.
Управляйте часовыми поясами и проверяйте точное время
Выражения Cron зависят от сервера — они выполняются в часовом поясе системы, а не в вашем местном часовом поясе. Чтобы проверить временную метку Unix или узнать, какое местное время запускает ваш cron в вашей зоне, используйте команду конвертер временных меток, который запускается в вашем браузере и мгновенно обрабатывает преобразования часовых поясов, не отправляя данные куда-либо.
Превратите свое расписание в событие календаря
Если у вас есть надежное выражение cron, поделитесь им или добавьте в свой календарь, чтобы вы могли видеть, когда запускается задача. генератор ИСУ преобразует дату начала и правило повторения в файл календаря, который импортируется в Календарь Apple, Календарь Google, Outlook или любое стандартное приложение календаря. Альтернативно создайте прямой Ссылка на Календарь Google который открывает событие, предварительно заполненное в Календаре Google, одним щелчком мыши — без загрузки и управления файлами.
Ваши расписания cron остаются конфиденциальными
Все упомянутые здесь инструменты работают внутри вашего браузера; на сервер ничего не загружается. Анализ Cron, преобразование временных меток, создание календаря и создание ссылок — все это происходит на вашем устройстве. Никакой учетной записи, никакого отслеживания, и инструменты работают в автономном режиме после загрузки. Ваши расписания и детали автоматизации остаются только вашими.