zoukankan      html  css  js  c++  java
  • http接口监控脚本

    环境:centos7

    效果:监控所有接口,连续失败两次,发送信息给运维人员

    思路:执行check.sh—读取interface接口内容—调用http-check脚本判断接口是否成功,失败写入文件fail.txt中—est-faile-time脚本判断失败的次数,两次及以上检测都失败——调用脚本sed-mail发送信息给相关人员

    [root@SmartCommunity-Node01 ezc-check]# ls
    check.sh  est-fail-time.sh  http-check.sh  interface.txt  sed-mail.sh
    [root@SmartCommunity-Node01 ezc-check]# tail interface.txt 
    /ctv/jzgjyxwx/taswk/sync 居住轨迹应销未销任务表数据同步
    /ctv/relTaskBauck/push   涉诈预警劝阻数据推送
    [root@SmartCommunity-Node01 ezc-check]# for i in `ls |grep -v interface.txt`;do echo $i && cat $i;done
    check.sh
    #!/bin/bash
    dir=$(cd $(dirname $0);pwd)
    rm -rvf $dir/fail.txt
    cat $dir/interface.txt|while read -r line
       do 
         #注意赋值不要有空格
         jk=`echo $line|awk '{print $1}'`
         name=`echo $line|awk '{print $2}'`
        
         sh $dir/http-check.sh $jk $name
    
      done
    #sh $dir/sed-mail.sh 
    #根据结果判断是否要发送短信,一次失败不发送信息,两次及以上才发送
    if [ -f "$dir/fail.txt" ];then
       sh $dir/est-fail-time.sh 1
       else
       sh $dir/est-fail-time.sh 0
    fi
    est-fail-time.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
              sh $dir/sed-mail.sh
             else
               #失败一次
                echo faile-one
        fi
       else
         rm -rvf $dir/result.txt
        echo server-ok
    fi
    http-check.sh
    #!/bin/bash
    dir=$(cd $(dirname $0);pwd)
    dct(){
     http_status=$(curl -m 5 -s -w %{http_code} https://ym.popin.com/ezcvsiprod$1 -o /dev/null)
        #状态码等于000,-o(或者)状态嘛大于500
     if [ $http_status -eq 409 -o $http_status -eq 200 -o $http_status -eq 401 -o $http_status -eq 000 ]
       then
         echo $2 server is $http_status成功
       else
         echo $2:$1 is $http_status失败 >> $dir/fail.txt
      fi
    
     }
    
    dct $1 $2
    sed-mail.sh
    #!/bin/bash
    dir=$(cd $(dirname $0);pwd)
    a_name=("zhangs@qq.com" "lisi@qq.com" )
         for element in ${a_name[@]}
          do
            cat $dir/fail.txt|grep '失败'|mail -v -s "ezc所有接口https://ym.popin.com/ezcvsiprod结果" $element
          done
          
    #定时任务配置
    [root@SmartCommunity-Node01 ezc-check]# crontab -l
    */5 7-22 * * * /wj/ezc-check/check.sh  #每天7点到22点每相隔5分钟测试一次 
    

      

      

    做一个决定,并不难,难的是付诸行动,并且坚持到底。
  • 相关阅读:
    Three.js实现3D地图实例分享
    three.js中让模型自动居中的代码如下:
    three.js obj转js的详细步骤 convert_obj_three.py的用法
    three.js
    Web三维编程入门总结之三:3D碰撞检测初探
    Web三维编程入门总结之二:面向对象的基础Web3D框架
    Web三维编程入门总结之一:WebGL与Threejs入门知识
    主流浏览器css兼容问题的总结
    Three.js三维模型几何体旋转、缩放和平移
    从3dMax导出供threeJS使用的带动作模型与加载
  • 原文地址:https://www.cnblogs.com/wukc/p/14743127.html
Copyright © 2011-2022 走看看