Прекратите поискать синтаксис Cron — для этого есть генератор

Обновлено

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

Остановите поиск синтаксиса крона — существует генератор для этого - IO Tools
Реклама · УДАЛИТЬ?

Сейчас 2 часа ночи. Запланированное развертывание — в 6 утра. Вам нужно дважды проверить, что крон-задача действительно сработает в нужное время. Поэтому вы открываете новую вкладку и вводите «cron syntax» в Google. Опять.

Это ритуал перехода. Каждый разработчик, который когда-либо работал с сервером Linux, делал это хотя бы один раз — и большинство из нас делали это больше, чем хотели бы признавать. Синтаксис крон-выражений — одно из тех вещей, которые вы используете постоянно, но никогда не запоминаете. Синтаксис находится в неприятной зоне между «слишком простым, чтобы искать» и «достаточно специфичным, чтобы ошибиться».

Существует лучший способ. Используйте онлайн-генератор крон-выражений и пусть инструмент обработает синтаксис, а вы сосредоточитесь на том, что действительно важно.

Почему синтаксис крона не запоминается

Крон имеет пять полей. Пять. Это всё. И тем не менее, порядок вызывает у людей сбои каждый раз:

# ┌───────────── minute (0–59)
# │ ┌───────────── hour (0–23)
# │ │ ┌───────────── day of month (1–31)
# │ │ │ ┌───────────── month (1–12)
# │ │ │ │ ┌───────────── day of week (0–6, Sunday=0)
# │ │ │ │ │
  * * * * * command

Проблема не в том, что это сложно — в том, что существует достаточно специальных символов, чтобы вызвать неоднозначность. Что означает «каждые 5 минут» или «в минуте 5»? Запускается ли в 9 утра или 9 вечера? Что произойдёт, если вы забудете, что месяцы начинаются с 1, а дни недели начинаются с 0? */5 Это не ловушки для новичков. Это ловушки для всех. Неправильно настроенная крон-задача — один из тихих способов введения инцидента в производственной среде — такой, при котором ничего не крашится сразу, а просто не запускается, и вы замечаете это только через три дня. 0 9 * * 1-5 Пять полей, объяснённых без ритуалов

Вот практическая версия:

Минута

(0–59) — минута часа, когда запускается задача.

  • означает 30-ю минуту. означает каждые 15 минут. 30 Час */15 (0–23) — используется 24-часовой формат.
  • означает 9 утра. означает 17 часов. Нет никакого AM/PM. 9 День месяца 17 (1–31) — какой календарный день.
  • означает первый день месяца. означает 15-й день. 1 Месяц 15 (1–12) — январь —
  • , декабрь — . Вы также можете использовать названия: 1, и т. д. 12День недели JAN, FEB(0–6 или 1–7) — воскресенье может быть
  • в зависимости от реализации крона. Понедельник всегда — . Это поле вызывает наибольшее недопонимание. 0 или 7 Специальные символы, которые важны 1— все возможные значения (каждую минуту, каждый час и т. д.)

— каждые

  • * интервал.
  • */n в поле минут означает каждые 5 минут. ```— диапазон. */5 в поле дня недели означает понедельник по пятницу.
  • a-b — список. 1-5 означает понедельник, среду, пятницу.
  • a,b,c — сокращённые алиасы. Не поддерживаются во всех версиях. 1,3,5 Частые ошибки, которые мучают людей
  • @reboot, @hourly, @daily 1. Забывание о времени зоны

Крон работает в локальной временной зоне сервера. Если ваш сервер находится в UTC, а вы в Нью-Йорке,

не запускается в 9 утра восточного времени — запускается в 4 или 5 утра, в зависимости от перехода на летнее время. Всегда знайте временную зону своего сервера. Всегда.

2. Использование как дня месяца, так и дня недели 0 9 * * * Если вы указываете значение в обоих полях — день месяца

и день недели (вместо

в одном из них), большинство реализаций крона интерпретируют это как ИЛИ — задача запускается, когда выполняется любое из условий. Это почти никогда не то, что вы хотите. и 3. Ожидание, что */1 означает «один раз» * одинаково с

. Это означает «каждый раз». В стандартном кроне нет способа выразить «один раз» — для этого нужно использовать

*/1 или одноразовый таймер systemd. *4. Не проверяя до развертывания at Крон не даёт немедленной обратной связи. Вы пишете выражение, сохраняете crontab и ждёте. Если оно неверно, вы узнаёте в 3 утра, когда запланированная резервная копия не запускается. Именно поэтому использование

калькулятора следующего запуска крона

до развертывания стоит 30 секунд. Используйте генератор крон-выражений вместо этого Честный совет: перестаньте пытаться вручную писать крон-выражения из памяти. Используйте генератор. Это не признак слабости — это способ избежать глупых ошибок в производственной среде.

генератор крон-выражений на IOTools

позволяет визуально строить любое выражение — выберите интервал минут, час, день недели и получите точное выражение и простое объяснение, когда оно запускается. Не требуется запоминание, не нужно открывать документацию.

The Как только вы получите выражение, проверьте его через . Вставьте выражение, получите следующие 5–10 запланированных времени выполнения. Это занимает пять секунд и сразу покажет, если вы случайно запланировали задачу очистки для запуска каждый час вместо раз в день.

Этот второй контроль — тот, который большинство людей пропускают. Не пропускайте его. Используйте генератор крон-выражений вместо этогоБыстрый справочник: выражения, которые вы будете использовать

Выражение

Каждый час, в точности в час

Каждый день в 9:00 утраЗначение
* * * * *Каждую минуту
0 * * * *Понедельник по пятницу в 9:00 утра
0 9 * * *Каждое воскресенье в полночь
0 9 * * 1-5Первый день каждого месяца в полночь
*/15 * * * *Каждые 15 минут
0 0 * * 01-е и 15-е число месяца в 4:30 утра
0 0 1 * *Понедельник по пятницу в 22:00
30 4 1,15 * *Один раз в день в полночь (сокращение)
0 22 * * 1-5Остановите поиск синтаксиса крона — существует генератор для этого 2
@dailyОстановите поиск синтаксиса крона — существует генератор для этого 1
Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?