Nagio NRPE-始终返回 0

Nagio NRPE-始终返回 0

我正在尝试使用 nrpe 客户端在 nagios 中执行 bash 脚本,但它始终返回“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 XXXX-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="atop -r file.atop | grep'^DSK' | tr -s' ' | grep"sda" | cut -d'|'-f 3 | grep -o'[0-9]+'";

$string=shell_exec("$str命令");

$str = (int) "$string"; 回显 $str;

但是,结果是一样的:第一个命令不起作用 - 第二个命令 - 一切正常。

有人能解释为什么会发生这种情况吗?

答案1

很简单,nagios 用户没有权限执行命令 asterisk -rx。将命令更改为“sudo asterisk -rx”即可解决此问题。

相关内容