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] + ')

echo $ _VAR

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

/ usr / local / nagios / libexec / check_nrpe -H XXXX -c | вырезать -d '|' -f 3 | grep -o '[0-9] +')

echo $ _VAR

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

/ usr / local / nagios / libexec / check_nrpe -H XXXX-c | вырезать -d '|' -f 3 | grep -o '[0-9] +')

echo $ _VAR

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

/ usr / local / nagios / libexec / check_nrpe -H XXXX-c check_asterisk_extensions

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

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

echo $ _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] +' ";

$ string = shell_exec (" $ strCommand ");

$ str = (int)" $ string "; echo $ str;

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

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

0
задан 5 June 2018 в 14:19
1 ответ

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

.
0
ответ дан 5 December 2019 в 05:57

Теги

Похожие вопросы