Shell告警监控系统
log=$1 //log作为一个变量,接收来自第一个参数的值t_s=`date +%s` //时间戳
t_s2=`date -d "2 hours ago" +%s` //两个小时前的时间戳
if [ ! -f /tmp/$log ] //如果日志文件不存在
then
echo $t_s2 > /tmp/$log //把两个小时前的时间戳写到日志
fi
t_s2=`tail -1 /tmp/$log|awk '{print $1}'` //截取时间戳
echo $t_s>>/tmp/$log //追加当前时间戳
v=$[$t_s-$t_s2] //时间戳的时间差(以秒为单位)详情如下1
echo $v
if [ $v -gt 3600 ]//在此也就是,当过了1小时如果还是没有恢复再次发告警邮件。调用mail.py(如果没有恢复,每1小时发一次)
then
./mail.py$1$2$3
echo "0" > /tmp/$log.txt //生成一个新的.txt日志。用来记录告警
else
if [ ! -f /tmp/$log.txt ] //判断有没有这个日志文件
then
echo "0" > /tmp/$log.txt //计数器
fi
nu=`cat /tmp/$log.txt` //查看计数器
nu2=$[$nu+1] //计数器+1
echo $nu2>/tmp/$log.txt //把计数器写入日志文件
if [ $nu2 -gt 10 ]
then
./mail.py$1 "trouble continue 10 min $2" "$3" //代表着已经持续了10分钟了
echo "0" > /tmp/$log.txt //重新开始计数
fi
fi
页:
[1]