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. Особенности работы¶
Время в настройке
timerуказывается по стандарту UTC.При указании в настройке
timerнесуществующей даты (например, 31 февраля) скрипт никогда не будет выполнен.Если в период выполнения скрипта систем была отключена, скрипт выполняется на следующем тике таймера.