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


    环境: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
    

      

      

      

    做一个决定,并不难,难的是付诸行动,并且坚持到底。
  • 相关阅读:
    (精华)将json数组和对象转换成List和Map(小龙哥和牛徳鹤的对话)
    优先队列底层实现是堆(heap)(操作系统进程调度)
    (透彻理解)最精锐代码::堆的三种基本操作新建-插入-删除
    (考研)读者写者问题(附代码)
    (考研)黑电吃苹果同步互斥问题(附代码)
    (考研)哲学家进餐问题(附代码)
    (考研)吸烟者问题(赋代码)
    (考研)PV操作和信号量
    01.第一章_C++ Primer学习笔记_开始
    C++学习笔记
  • 原文地址:https://www.cnblogs.com/wukc/p/14743050.html
Copyright © 2020-2023  润新知