Выполнение сценария из обработчика события Nagios не запускается

У меня Nagios работает на веб-сервере. Для этого один сервис службы Nagios, в частности, если он не работает, он запустит скрипт. Этот скрипт запускается через обработчики событий Nagios.

Команда обработчика событий Nagios:

define command{ command_name testDisableServer command_line /usr/local/nagios/etc/objects/event_handlers/testDisableServer.sh } 

Я выполняю скрипт testDisableServer.sh от обработчиков событий Nagios, который выглядит так:

 #!/bin/bash wall "Script execution started"; /usr/bin/sudo /root/scripts/disableServer.sh force 

Этот скрипт testDisableServer.sh имеет следующие разрешения:

 -rwxr-xr-x 1 nagios nagios 2.0K Oct 12 14:57 testDisableServer.sh 

Когда служба опустится, я получу столбец в своем SSH-соединении, в котором говорится: «Начато выполнение скрипта», но это не вызовет мой скрипт disableServer.sh. Я попытался поместить другой столбец внутри disableServer.sh, и это не вызвало его.

Этот скрипт запускается пользователем «nagios». 'nagios' был добавлен в visudo, как таковой:

 nagios ALL=(ALL)NOPASSWD:/root/scripts/disableServer.sh 

Выполнение этого скрипта в качестве пользовательского «nagios» из командной строки работает отлично. Однако, когда обработчик события запускает его, выход отсутствует. Я попытался поймать вывод в файл журнала, и я ничего не придумал. Это разрешения на /root/scripts/disableServer.sh:

 -rwxr-xr-x 1 root root 2.0K Oct 12 15:01 disableServer.sh 

Почему обработчик события ударил 'testDisableServer.sh', но не выполнил 'disableServer.sh' из обработчика событий Nagios, но отлично работает в SSH-соединении в качестве пользователя nagios? BTW, 'testDisableServer.sh' – это еще один дополнительный слой, который добавляется, чтобы увидеть, работают ли обработчики событий, какими они кажутся. Это будет удалено после выполнения этого сценария.

2 Solutions collect form web for “Выполнение сценария из обработчика события Nagios не запускается”

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

Я бы сменил ваш скрипт (временно для отладки только):

 #!/bin/bash exec 2> /tmp/log."$$" set -x wall "Script execution started"; /usr/bin/sudo /root/scripts/disableServer.sh force 

И добавьте еще один set -x вверху disableServer.sh

Чтобы узнать, что происходит (в файлах /tmp/log.* ).

В моем случае проблема заключалась в следующем:

 sudo: sorry, you must have a tty to run sudo 

Таким образом, вы можете просто отключить его в / etc / sudoers, комментируя

 Defaults requiretty 

В любом случае это не имеет никакой пользы.

  • команда не найдена с использованием sudo в скрипте
  • Как работает этот скрипт svn?
  • сообщение пользователю после первого входа
  • Сортировка и группирование доменов и поддоменов
  • команду поставить дефис во втором столбце, если пробел задан между словом
  • По умолчанию fedora 15 install, как вы можете подключиться к сетевому диску после входа в систему?
  • Многоуровневое меню-подменю-вариант bashscript (If-Else vs Switch-Case)
  • Ловушка не захватывает SIGTSTP
  • Как правильно собрать массив строк в zsh
  • SSH для сервера, а также команды выполнения и печати
  • Как сохранить консольный ввод в mplayer при чтении из stdin?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.