Chinaunix首页 | 论坛 | 博客
  • 博客访问: 496995
  • 博文数量: 401
  • 博客积分: 244
  • 博客等级: 入伍新兵
  • 技术积分: 2215
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-04 10:02
文章分类

全部博文(401)

文章存档

2013年(37)

2012年(364)

分类: Python/Ruby

2013-08-12 13:42:26

之前写了个监控脚本,发现告警短信次数未控制时,垃圾短信N多。。做了个简单的控制,同一故障只发送二次。
之后不再发送。恢复后发送恢复短信。
 
用了一个土办法。。当练手。

  1. if [ $succ_ping -gt $((ping_count-1)) ];then
  2. if [ -f ./alarm_file/alarm_$host ];then
  3. rm -rf ./alarm_file/alarm_$host
  4. #发送故障消除短信通知--调用insert_table
  5. messages="$host服务器通迅恢复正常`date "+%Y%m%d %H:%M:%S"`"
  6. echo "$messages" >>./log/ping_err_recover.log
  7. insert_table
  8. else
  9. echo "本次检测结果---->$host服务器ping检测正常"
  10. echo "`date "+%Y%m%d %H:%M:%S"`--->$host服务器ping检测正常,ping次数$ping_count,接收$succ_ping" >>./log/ping_log
  11. fi
  12. else
  13. echo "本次检测结果---->$host服务器有丢包现象,丢包率为:$loss_ping"
  14. messages="`date "+%Y%m%d %H:%M:%S"`--->$host服务器有丢包现象,丢包率为:$loss_ping"
  15. #对警次数进行处理,超过2次将不告警
  16. #格式host a(告警次数)
  17. #已经出现告警的次数加1
  18. echo "告警服务器为$host"
  19. if [ -f ./alarm_file/alarm_$host ];then
  20. #取出当前的告警次数并加1
  21. a=`awk '{print$2}' ./alarm_file/alarm_$host`
  22. b=$(($a+1))
  23. echo "$host $b" >./alarm_file/alarm_$host
  24. alarm_count=`awk '{print$2}' ./alarm_file/alarm_$host`
  25. if [ $alarm_count -gt $sms_count ];then
  26. echo "超过2次不发送短信"
  27. echo "`date "+%Y%m%d %H:%M:%S"`--->$host服务器有丢包现象,接收$succ_ping,丢包率为:$loss_ping,超过二次不发送。" >>./log/ping_err_log
  28. else
  29. #未超过2次调用insert_table函数发送短信
  30. echo "未超过2次"
  31. echo "`date "+%Y%m%d %H:%M:%S"`--->$host服务器有丢包现象,接收$succ_ping,丢包率为:$loss_ping">>./log/ping_err_log
  32. insert_table
  33. fi
  34. else
  35. #第一次告警
  36. echo "第一次告警"
  37. echo "$host 1" >./alarm_file/alarm_$host
  38. insert_table
  39. echo "`date "+%Y%m%d %H:%M:%S"`--->$host服务器有丢包现象,接收$succ_ping,丢包率为:$loss_ping" >>./log/ping_err_log
  40. fi
  41. fi
  42. done

阅读(1160) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~