Перейти к содержанию
TextArray

Понимание выражений cron: пишите расписания как разработчик

Blog /

Выражения Cron контролируют выполнение автоматизированных задач на серверах, облачных платформах и инструментах планирования, однако большинство разработчиков прибегают к копированию примеров и надеются, что они сработают. Понимание синтаксиса cron означает, что вы можете уверенно писать любое расписание с нуля, быстрее отлаживать сбойные задания и избегать дорогостоящих ошибок, таких как резервное копирование, которое никогда не запускается.

Что такое выражения cron и почему они важны

Выражение cron — это компактная строка из пяти или шести полей, которая точно сообщает системе, когда следует выполнить задачу. Это стандартный формат для серверов Unix, Linux, GitHub Actions, AWS EventBridge, Kubernetes и платформ CI/CD по всему миру. Вместо того, чтобы писать прозу вроде «запускайте это каждый вторник в 2 часа ночи», вы пишете 0 2 * * 2, и демон cron мгновенно интерпретирует его. Изучение этой нотации, которая практически не менялась на протяжении десятилетий, — это разовая инвестиция, которая окупается каждый раз, когда вы что-то планируете.

Пять полей и их диапазоны

Стандартный cron использует пять обязательных полей, разделенных пробелами. Прочитайте их слева направо: минуты, часы, день месяца, месяц и день недели:

  1. Minute (0–59) — в какую минуту часа бежать
  2. Hour (0–23) — какой час суток (24-часовой формат)
  3. Day of month (1–31) — какой календарный день
  4. Month (1–12) — какой месяц года
  5. 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, преобразование временных меток, создание календаря и создание ссылок — все это происходит на вашем устройстве. Никакой учетной записи, никакого отслеживания, и инструменты работают в автономном режиме после загрузки. Ваши расписания и детали автоматизации остаются только вашими.