Интервал 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 или SUNSAT) (например, 0 равнозначен SUN) │ │ │ │ │ │ ┌────────── Год │ │ │ │ │ │ │ * * * * * ? * |
•Значение 0 0 0 означает полночь (секунды, минуты, часы).
•Используйте символ ? при невозможности определить значение из-за того, что оно определено в другом поле (число месяца или день недели).
•Символ * означает каждый соответствующий период (секунды, минуты, часы, число месяца, месяц, день недели, год).
•Значение SUN означает «в воскресенье».
Названия месяцев и дней недели не чувствительны к регистру. Например, 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-го числа, так как он не перепрыгивает через границу месяца.
Символы L и W можно также комбинировать в поле числа месяца (LW), что означает последний рабочий день месяца. |
Случайный (R)
R — это специальный символ CRON-выражений ESET PROTECT, который позволяет указывать произвольные моменты времени. Например, триггер R 0 0 * * ? * срабатывает каждый день в 00:00, но в случайную секунду (0–59).
Рекомендуется использовать рандомизированные моменты времени для предотвращения подключения всех 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 * * * ? * |
Срабатывание ежечасно, ежедневно. |