Nagios只打印部分脚本的输出

时间:2018-05-24 10:08:56

标签: bash nagios

我有一个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:

1 个答案:

答案 0 :(得分:0)

解决方案原来是nagios在docker容器中运行,因此在主机上工作的服务器的地址在nagios中不起作用。 Smbclient无法连接到服务器,但脚本仍然以0退出代码退出,因此nagios为绿色。

所以这个问题与nagios没什么关系,除了确保脚本为任何类型的错误提供退出代码1或2的重要性。