http接口监控脚本
2021-05-29 11:02
标签:amp 结果 centos7 $1 内容 不发送 art url 次数 环境:centos7 效果:监控所有接口,连续失败两次,发送信息给运维人员 思路:执行check.sh—读取interface接口内容—调用http-check脚本判断接口是否成功,失败写入文件fail.txt中—est-faile-time脚本判断失败的次数,两次及以上检测都失败——调用脚本sed-mail发送信息给相关人员 http接口监控脚本 标签:amp 结果 centos7 $1 内容 不发送 art url 次数 原文地址:https://www.cnblogs.com/wukc/p/14743127.html[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分钟测试一次