Для перемещения по дереву справки используйте строки заголовка.

Немного линукса
Пользовательские скрипты 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 Отдел документации