Возврат Несколько статусов выхода в nagios

Я пытаюсь написать сценарий оболочки для плагина nagios. У меня есть список неудавшихся узлов, где я должен запускать CRITICAL alert для nagios.

Входные данные :

#cat file OFFLINE OFFLINE OFFLINE OFFLINE 

Все, что я хочу, – отправить статус выхода (т.е. 2) для всех узлов OFFLINE. И вот мой код ниже.

КОД

 while read -r output; do STATE=$(echo $output) if [ $STATE == "OFFLINE" ]; then echo "CRITICAL: STATE is $STATE" exit 2 else echo "OK " > /dev/null fi done< <( cat file ) 

Но проблема в том, что цикл работает один раз и выходит с 2, а предупреждение идет для одного узла, а для оставшегося узла мне нужно отправить предупреждение. Есть ли способ написать этот скрипт?

One Solution collect form web for “Возврат Несколько статусов выхода в nagios”

Я не знаком с Nagios и его операцией, но если он принимает только один код выхода за раз, вам нужно немного изменить свой скрипт и запустить его несколько раз.

 output=$(head -1 file) # read first line sed -i -e '1,1d' file # delete the first line STATE=$(echo $output) if [ $STATE == "OFFLINE" ]; then echo "CRITICAL: STATE is $STATE" exit 2 else echo "OK " > /dev/null fi 

Если вы можете запустить этот сегмент несколько раз, вы получите несколько кодов выхода.

  • Cronjob не выполняет сценарий оболочки, но когда я выполняю его автономно, он работает. Зачем?
  • xterm не использует .Xresources
  • Команда запуска / остановки в терминале без вмешательства человека?
  • Отключение соединения по событию
  • Делайте работу «читать», когда не фокусируетесь на терминале
  • Как я могу запустить этот скрипт python во всех html-файлах под каталогом?
  • Выполнять команду на нескольких секундах параллельно с помощью сценария оболочки
  • Нужен скрипт для автоматизации конвертирования большого количества аудиофайлов в другой формат
  • Добавление метки времени в файл журнала?
  • Как выбрать строки из файла CSV на основе разных значений столбцов?
  • Сравните идентификационные номера с номерами ревизий в двух файлах, и если rev # для файла A меньше, чем файл B, замените строку на новый rev #?
  • Скрипты на несколько серверов одновременно
  • Linux и Unix - лучшая ОС в мире.