Интервал CRON-выражения

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

CRON-выражение может быть простым, например: * * * * ? *, или более сложным, например: 0/5 14,18,3-39,52 * ? JAN,MAR,SEP MON-FRI 2012-2020

Список значений, которые можно использовать в CRON-выражении:

Имя

Обязательно

Значение

Разрешенные специальные символы

Секунды

Да

0-59

, - * / R

Минуты

Да

0-59

, - * / R

Часы

Да

0-23

, - * / R

День месяца

Да

1-31

, - * / ? L W

Месяц

Да

1–12 или JAN-DEC

, - */

День недели

Да

0–6 или SUN-SAT

, - / ? L #

Год

Да

1970-2099

, - * /

Синтаксис CRON-выражения следующий:

 

┌────────── Секунды (0–59)

│ ┌────────── Минуты (0–59)

│ │ ┌────────── Часы (0–23)

│ │ │ ┌────────── День месяца (1–31)

│ │ │ │ ┌────────── Месяц (1–12 или JAN-DEC)

│  │  │  │  │  ┌────────── День недели (0–6 или SUN-SAT) (например, 0 равнозначен SUN)

│ │ │ │ │ │ ┌────────── Год

│  │  │  │  │  │  │

*  *  *  *  *  ?  *

Значение 0 0 0 означает полночь (секунды, минуты, часы).

Используйте символ ? при невозможности определить значение из-за того, что оно определено в другом поле (число месяца или день недели).

Символ * означает каждый соответствующий период (секунды, минуты, часы, число месяца, месяц, день недели, год).

Значение SUN означает «в воскресенье».


note

Названия месяцев и дней недели не чувствительны к регистру. Например, MON равнозначно mon, а JAN равнозначно jan.

Специальные символы

Запятая (,)

Запятые используются для разделения элементов списка. Например, строка «MON,WED,FRI» в 6-м поле (день недели) означает «понедельники, среды и пятницы».

Дефис (-)

Задает диапазоны. Например, 2012-2020 обозначает каждый год от 2012 до 2020 включительно.

Подстановочный знак (*)

Служит для выбора всех возможных значений в пределах поля. Например, * в поле минут означает каждую минуту. Подстановочный знак нельзя использовать в поле дня недели.

Вопросительный знак (?)

При выборе определенного дня можно указать либо число месяца, либо день недели. То и другое одновременно указать нельзя. Если вы указали число месяца, в качестве дня недели необходимо указать ?, и наоборот. Например, если нужно, чтобы триггер сработал в определенный день месяца (скажем, 10-й), но без разницы, какой это будет день недели, укажите 10 в поле числа месяца и ? в поле дня недели.

Решетка (#)

Служит для указания N-го дня в месяце. Например, значение 4#3 в поле дня недели означает третий четверг месяца (день 4 = четверг, а #3 = 3-й четверг в месяце). Если вы указали #5, а в месяце отсутствует 5-й заданный день недели, триггер в этом месяце не сработает.

Косая черта (/)

Описывает шаг диапазона. Например, 3-59/15 во 2-м поле (минуты) обозначает третью минуту часа и каждые 15 минут в дальнейшем.

Последний (L)

При использовании в поле дня недели позволяет указывать такие конструкции, как последняя пятница (5L) заданного месяца. В поле числа месяца указывает последний день месяца. Например, день 31 для января, день 28 для февраля в невисокосные годы.

Рабочий день (W)

Символ W разрешен в поле числа месяца. Этот символ служит для указания рабочего дня (с понедельника по пятницу), ближайшего к заданному дню. Например, если указать значение 15W в поле числа месяца, это будет означать ближайший рабочий день к 15-му числу месяца. Таким образом, если 15-е число — суббота, триггер сработает в пятницу 14-го. Если 15-е число — воскресенье, триггер сработает в понедельник 16-го. Однако если указать число месяца 1W, когда 1-е число — суббота, триггер сработает в понедельник 3-го числа, так как он не перепрыгивает через границу месяца.


note

Символы L и W можно также комбинировать в поле числа месяца (LW), что означает последний рабочий день месяца.

Случайный (R)

R — это специальный символ CRON-выражений ESET PROTECT, который позволяет указывать произвольные моменты времени. Например, триггер R 0 0 * * ? * срабатывает каждый день в 00:00, но в случайную секунду (0–59).


important

Рекомендуется использовать рандомизированные моменты времени для предотвращения подключения всех ESET Management агентов к серверу ERA ESET PROTECTServer в один и тот же момент.

Реальные примеры, иллюстрирующие некоторые разновидности CRON-выражения.

CRON-выражение

Описание

0 0 12 * * ? *

Срабатывание в 12:00 (полдень) каждый день.

R 0 0 * * ? *

Срабатывание в 00:00, но в случайную секунду (0–59) каждый день.

R R R 15W * ? *

Срабатывание 15-го числа каждого месяца в случайное время (секунды, минуты, часы). Если 15-е число — суббота, триггер сработает в пятницу 14-го. Если 15-е число — воскресенье, триггер сработает в понедельник 16-го.

0 15 10 * * ? 2016

Срабатывание в 10:15 каждый день в течение всего 2016 года.

0 * 14 * * ? *

Срабатывание каждую минуту с 14:00 до 14:59 каждый день.

0 0/5 14 * * ? *

Срабатывание каждые 5 минут с 14:00 до 14:55 каждый день.

0 0/5 14,18 * * ? *

Срабатывание каждые 5 минут с 14:00 до 14:55, а также каждые 5 минут с 18:00 до 18:55 каждый день.

0 0-5 14 * * ? *

Срабатывание каждую минуту с 14:00 до 14:59 каждый день.

0 10,44 14 ? 3 WED *

Срабатывание в 14:10 и 14:44 каждую среду марта.

0 15 10 ? * MON-FRI *

Срабатывание в 10:15 по будням (в понедельник, вторник, среду, четверг и пятницу).

0 15 10 15 * ? *

Срабатывание в 10:15, 15 числа каждого месяца.

0 15 10 ? * 5L *

Срабатывание в 10:15 в последнюю пятницу каждого месяца.

0 15 10 ? * 5L 2016-2020

Срабатывание в 10:15 в последнюю пятницу каждого месяца с 2016 по 2020 гг. включительно.

0 15 10 ? * 5#3 *

Срабатывание в 10:15 в 3-ю пятницу каждого месяца.

0 0 * * * ? *

Срабатывание ежечасно, ежедневно.