Bash脚本无法从Nagios GUI运行

Bash脚本无法从Nagios GUI运行,bash,shell,unix,nagios,Bash,Shell,Unix,Nagios,当我尝试使用Nagios GUI中的脚本时,它不起作用,而在CLI中起作用 这是我的剧本 #!/bin/bash sqlplus='/usr/lib/oracle/11.2/client64/bin/sqlplus' TMPFILE='/usr/local/nagios/.DBStatus/TMP.out' IP=$1 DBCREDS=$2 #Check the DB Host is UP / NOT HOSTALIVE=$(ping -c 1 $IP | grep icmp | wc -l

当我尝试使用Nagios GUI中的脚本时,它不起作用,而在CLI中起作用

这是我的剧本

#!/bin/bash

sqlplus='/usr/lib/oracle/11.2/client64/bin/sqlplus'
TMPFILE='/usr/local/nagios/.DBStatus/TMP.out'
IP=$1
DBCREDS=$2

#Check the DB Host is UP / NOT
HOSTALIVE=$(ping -c 1 $IP | grep icmp | wc -l)
if [ $HOSTALIVE -eq 0 ]
then
   echo " Host "$IP" is not reachable, Please check the connectivity "
exit 2;
fi

# DB Check
$sqlplus $DBCREDS <<STORE > $TMPFILE
select count(*) from user_tables;
exit;
STORE
CMD=`cat $TMPFILE`
if grep -Fq "Connected to" <<< $CMD;
then
  echo "DB Connection is OK"
  exit 0;
else
  echo "DB Connection is Down"
  exit 2;
fi

exit 0;
数据库连接正常

但显示为数据库连接已从Nagios GUI关闭


谢谢

在脚本的顶部是否有一行shebang命令来告诉您要使用哪个shell。通常都是这样/bin/bash或/bin/sh位于第一行,无前导空格字符。这个必须是文件中的第一个字符。如果是,请编辑脚本以包含该信息。祝你好运,是的。。。舍邦线存在。。。。没有在这里写,因为它在bash脚本中很常见:-是。。我的剧本里有。。。唯一的区别是我没有将其粘贴到这里:-无论如何,更重要的调试步骤-在脚本开头添加以下内容:exec 2>/tmp/nagios-check.log;PS4=':$BASH_SOURCE:$LINENO+;设置-x,然后在复制错误后查看/tmp/nagios-check.log的内容/bin/bash,我用这个
[cobnmon011] ~/.DBStatus $  bash /usr/local/nagios/libexec/check_oradbstatus.sh xyz.com 'admin_123/xyzabcd@abcd'