日常监控-避免产生大量邮件处理脚本

环境:centos7

1、情况一(避免产生大量邮件问题)
失败情况:
连续失败两次及以上,才发送信息
成功情况:
成功不发送信息
失败一次,下一次成功,不发送信息
[root@node]cat b.sh

#!/bin/bash
#当前目录路径
dir=$(cd $(dirname $0);pwd)
#1表示失败0表示成功
if [ $1 -eq 1 ]
  then
    #失败一次记录一条
    echo 1 >> $dir/result.txt
    #计数
    c=$(cat $dir/result.txt|wc -l)
   #大等于2次失败 发送
    if [ $c -ge 2 ]
        then
          #发送信息
          echo sed-meil
         else
           #失败一次
            echo faile-one
    fi
   else
     rm -rvf $dir/result.txt
    echo server-ok
fi
执行结果如下
[root@node-1 shell]# ./b.sh 1
faile-one
[root@node-1 shell]# ./b.sh 1
sed-meil
[root@node-1 shell]# ./b.sh 0
removed ‘/wj/shell/result.txt’
server-ok
[root@node-1 shell]# ./b.sh 0
server-ok
2、情况二(避免产生大量邮件问题)
失败的情况:
连续2次失败 每次都发送信息
第三次 提示让用户解决问题
连续4次还是失败就不发了
大于等于3次失败后,问题被解决 发送一条问题解决的邮件
成功的情况:
大于等于3次失败后,问题被解决 发送一条问题解决的邮件
其他成功情况,不发送短信
[root@node]cat a.sh
#!/bin/bash
#当前目录路径
dir=$(cd $(dirname $0);pwd)
#判断为失败1成功其他数字失败
if [ $1 -eq 1 ]
  then
   #失败一次记录一条
    echo 1 >> $dir/result.txt
  #计数
    c=$(cat $dir/result.txt|wc -l)
   #小等于2次失败 发送
    if [ $c -le 2 ]
        then
          echo sed-meil
        elif [ $c -eq 3 ]
         then
          echo '失败两次了,请检查服务,后面再失败就不了'
        else
           echo no-sed-meil
    fi
#判断为成功
  else
       #假如文件存在
       if [ -f  $dir/result.txt ]
         then
            #记一个失败的数量
            c=$(cat $dir/result.txt|wc -l)
            #大等于于3次后成功,提示一个问题解决
               if  [ $c -g 3  ]
                   then 
                   rm -rvf $dir/result.txt
                   echo '问题被解决!'
                  else
                     #失败次数小于3都是ok
                    rm -rvf $dir/result.txt
                   echo servers-ok
             fi
          #没有文件则一直是好的
         else
         echo servers-yizhi-ok
       fi
fi
执行情况如下,0成功 1表示失败
[root@node-1 shell]# ./a.sh 0
servers-yizhi-ok
[root@node-1 shell]# ./a.sh 0
servers-yizhi-ok
[root@node-1 shell]# ./a.sh 1
sed-meil
[root@node-1 shell]# ./a.sh 1
sed-meil
[root@node-1 shell]# ./a.sh 1
失败两次了,请检查服务,后面再失败就不了
[root@node-1 shell]# ./a.sh 0
removed ‘/wj/shell/result.txt’
问题被解决!
[root@node-1 shell]# ./a.sh 1
sed-meil
[root@node-1 shell]# ./a.sh 0
removed ‘/wj/shell/result.txt’
servers-ok
[root@node-1 shell]# ./a.sh 0
servers-yizhi-ok

  

  

  

做一个决定,并不难,难的是付诸行动,并且坚持到底。
原文地址:https://www.cnblogs.com/wukc/p/14743050.html