21. Служба scheduler

21.1. Общие сведения

Служба scheduler позволяет планировать выполнение скриптов через равные промежутки времени.

Настройки данной службы осуществляются на следующем уровне конфигурации:

[edit service scheduler]

21.2. Настройка пользователя

Для указания учетной записи, от имени которой выполняются скрипты, применяется команда:

# set script-user <script-user-name>

где <account> – имя существующей учётной записи.

21.3. Настройка события

Настройки событий осуществляются на следующем уровне конфигурации:

[edit service scheduler event <event-name>]

где <event-name> – строка длиной от 1 до 128 символов.

На данном уровне конфигурации доступны следующие настройки:

  • timer <w:m:h:d:M> – указать периодичность выполнения скрипта, где w – день недели в числовом формате (1 – понедельник, 2 – вторник, и т.д.), m – число минут от 0 до 59, h – число часов от 0 до 23, d – число дней от 1 до 31, M – число месяцев от 1 до 12, применимы значение *, означающее “любой”, перечисления, диапазоны;

  • script path <path-to-script> – указать скрипт, <path> – полное имя файла;

  • script args <args-value> – указать аргументы скрипта, где <args> – слова, указанные через пробел.

Экранирование пробелов при указании аргументов осуществляется с помощью символа \ (при этом символ \ внутри yang также подлежит экранированию).

Примеры настройки периодичности выполнения скрипта:

  • *:15:10:10,15-17:11 – 10,15,16,17 ноября в 10:15;

  • 3:*:*:*:* – каждую среду в 00:00;

  • 2:*:12,17:19:9 – 19 августа в 12 и 17 часов, если указанные даты – вторник.

Пример настройки события:

# edit service scheduler
# set script-user adm
# edit event test
# set timer 4:*:*:*:*
# set script path /system/scripts/test
# set script args "a\\ b"
# diff
+service {
+  scheduler {
+    event test {
+      timer 4:*:*:*:*
+      script {
+        path /system/scripts/test
+        args "a\\ b"
+      }
+    }
+  }
+}

Указан единственный аргумент к скрипту – “a b”.

21.4. Особенности работы

  1. Время в настройке timer указывается по стандарту UTC.

  2. При указании в настройке timer несуществующей даты (например, 31 февраля) скрипт никогда не будет выполнен.

  3. Если в период выполнения скрипта систем была отключена, скрипт выполняется на следующем тике таймера.