Назад | Перейти на главную страницу

Nagio NRPE - Всегда возвращать 0

Я пытаюсь выполнить сценарий bash в nagios с помощью клиента nrpe, но он всегда возвращает значение «0» в качестве вывода.

Если я использую эту команду в скрипте:

_VAR = $ (atop -r file.atop | grep '^ DSK' | tr -s '' | grep "sda" | cut -d '|' -f 3 | grep -o '[0-9] +')

эхо $ _VAR

Затем - все работает правильно, и на сервере я получаю правильное значение, запустив

/ usr / local / nagios / libexec / check_nrpe -H X.X.X.X-c check_asterisk_extensions

Но если я меняю команду на:

_VAR = $ (/ usr / sbin / asterisk -rx 'sip show peers' | grep -i 'ok' | wc -l)

эхо $ _VAR

Затем на сервере я постоянно получаю «0».

Локально оба сценария возвращают правильные значения.

Я также пробовал использовать скрипт php, который преобразует переменную в целое число:

$ strCommand = "/ usr / sbin / asterisk -rx 'sip show peers' | grep -i 'ok' | wc -l";
// $ strCommand = "поверх -r file.atop | grep '^ DSK' | tr -s '' | grep" sda "| cut -d '|' -f 3 | grep -o '[0-9] +' ";

$ строка = shell_exec ("$ strCommand");

$ str = (int) "$ строка"; echo $ str;

Но результат тот же: с первой командой не работает - со второй - все хорошо.

Может кто-нибудь объяснить, почему это происходит?

Это было очень просто, у пользователя nagios не было разрешения на выполнение команды asterisk -rx. Изменение команды на «sudo asterisk -rx» решило эту проблему.