Немного линукса
Пользовательские скрипты Linux
Исполнение скриптов из конфигурации NSG

Скрипты bash могут запускаться на исполнение изнутри конфигурационного дерева NSG следующими способами.

Исполнение скриптов в качестве демонов

Любой скрипт может быть запущен в NSG Linux 2.x в качестве демона, т.е. системной службы. Управление демонами производится в узле .services.daemons. При этом возможны две существенно различные ситуации, определяемые параметром auto-restart:

ВНИМАНИЕ! При написании скриптов, содержащих бесконечный цикл, пользователю необходимо самостоятельно предусмотреть в них задержку между последовательными исполнениями, например, sleep секунды. В противном случае скрипт будет крутиться с максимальной скоростью и приводить к полной загрузке процессора устройства.

Исполнение скриптов по результатам тестов (ping и др.)

Функция netping позволяет, в простейшем виде, организовать регулярную посылку ping на заданный IP-адрес. Для более надёжного обнаружения отказа запросы можно посылать сериями, по несколько запросов в одной попытке. Как только на один их запросов получен ответ, попытка считается успешной и дальнейшие запросы не посылаются, для экономии трафика. Если ответ не получен ни на один запрос, то попытка считается неудачной. После заданного числа неудачных попыток подряд хост считается недоступным, и в этом случае выполняется заданный failure-script. После этого попытки послать ping продолжаются по прежнему графику; после первой удачной попытки считается, что соединение восстановлено, и выполняется соответствующий restore-script.

Внутри сценария, обрабатывающего события, могут быть использованы переменные окружения $NSG_LAST_STATE, $NET_PING_EVENT, $NET_PING_DESTINATION_IP, $NET_PING_SOURCE_IP.

В более сложном варианте, вместо ping можно определить любой другой скрипт, который будет проверять наличие или отсутствие какого-либо состояния. Он указывается в параметре test-script.

Исполнение скриптов по событию и по заданному расписанию

NSG Linux 2.x имеет специальную службу .services.event-handler для мониторинга и обработки событий от различных системных объектов (например, интерфейсов — переход в UP или DOWN) и внешних датчиков. Любой скрипт можно назначить в качестве действия, вызываемого в качестве реакции на некоторое событие. В скрипте можно использовать переменные окружения $SENSOR, $PREVSTATE, $STATE.

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

ПРИМЕЧАНИЕ. Тело скрипта вводится в значения узлов конфигурационного дерева как одна строка. Эта строка, однако, может содержать в себе последовательности \n, \r. В этом случае при редактировании параметра его поле ввода автоматически преобразуется в двумерное окно. (В nsgsh — вызывается редактор nano.
Для удобства работы можно сначала ввести \n, выйти из поля ввода, и войти в него заново.

© Network Systems Group 2015–2024 Отдел документации