我有一个bash脚本,它会检查以确保已创建备份,并且我在nagios中运行它。检查本身工作正常,但是当我在shell中运行时,nagios不打印我看到的所有相同输出。
bash脚本:
#!/bin/bash
# Check whether a specified backup exists
filemask=$1
ls_output=$(smbclient \\\\Server\\Folder$ -U Domain\\Username%password -c ls | grep $filemask)
month=$(echo $ls_output | awk '{print $5}')
day=$(echo $ls_output | awk '{print $6}')
t=$(echo $ls_output | awk '{print $7}')
echo "Last Backup: $month $day $t"
today=$(date +%d)
yesterday=$(( 10#$today - 1 ))
if [ $yesterday -lt 10 ]; then
yesterday="0$yesterday"
fi
if [ $day != $today -a $day != $yesterday ]; then
exit 2
fi
exit 0
当我在shell中运行时,我会得到类似
的内容Last Backup: May 24 11:03:44
但Nagios仅显示输出结果:
Last Backup:
答案 0 :(得分:0)
解决方案原来是nagios在docker容器中运行,因此在主机上工作的服务器的地址在nagios中不起作用。 Smbclient无法连接到服务器,但脚本仍然以0退出代码退出,因此nagios为绿色。
所以这个问题与nagios没什么关系,除了确保脚本为任何类型的错误提供退出代码1或2的重要性。