最近有个需求,需要监控error日志行数是否增加,来判断业务可用性。
开始监控时,总是不生效,出现各种奇葩状态,
脚本如下:
#!/bin/bash HTTPLINE=`cat /tmp/icbcline.log` echo `cat /icbc_check_log/nchttps/error.log | wc -l`>/tmp/httpicbcnagios.log HTTPDLIN=`cat /tmp/httpicbcnagios.log` #echo $LINE #echo "-----------" #echo $DLIN SIGNLINE=`cat /tmp/signicbcline.log` echo `cat /icbc_check_log/ncsign/error.log | wc -l`>/tmp/signicbcnagios.log SIGNDLIN=`cat /tmp/signicbcnagios.log` if [ ${HTTPDLIN} -gt ${HTTPLINE} -o ${SIGNDLIN} -gt ${SIGNLINE} ] ;then echo "ICBC is critical|httpline=$HTTPDLIN;;signline=$SIGNDLIN;;" exit 2 else echo "ICBC is okaa|httpline=$HTTPDLIN;;signline=$SIGNDLIN;;" exit 0 fi
最后发现是权限的问题,开始只注意了脚本执行权限,没注意到脚本里面的文件的读写权限,最后使用-gt的时候,用NULL去做对比,使监控状态和想要的状态不一致。以后使用注意此事宜。