【Shell】自动化运维之利用curl定时监控网站状态邮件报警v2.0

一一网络

做互联网综合资源分享云平台!。

立即加入一一网络

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

【Shell】自动化运维之利用curl定时监控网站状态邮件报警v2版

【Shell】自动化运维之利用curl定时监控网站状态邮件报警v2.0


shell监控curl效果图:


【Shell】自动化运维之利用curl定时监控网站状态邮件报警v2.0

源码源自无聊中的一个想法,站点总是无故的被404或者NOT found,那么如何利用shell简单实现
自动化运维之利用shell curl实测效果rl定时监控网站状态邮件报警呢?

v1实测源代码如下:

 

#!/bin/bash
curl_log="curl.log"
curl_link="`cat link.ini`"
rm -rf curl_*.log


for i in $curl_link
do
rm -rf $curl_log
curl_get=`curl -o $curl_log $i 2>&1`
echo ""
echo "--------------------------------------------------------"
grep_key1="found."
grep_key2="Faithfully yours, frp."
grep_key3="一一网络"
grep_key4="一一网"
a="`cat $curl_log |egrep -c  "$grep_key1|$grep_key2"`"
b="`cat $curl_log |egrep -c  "$grep_key3|$grep_key4"`"
if [[ $a > $b ]];then
        echo -e "\033[31m `date`  \033[0m"
        echo -e "\033[31m                                                                           \033[0m"
        echo -e "\033[31m 页面搜索完成,尴尬,您的网站\033[0m \033[41;37m $i \033[0m \033[31m 崩了!!!!!!!!!!!!!!\033[0m"
        echo -e "\033[31m                                                                           \033[0m"
        echo -e "\033[31m 页面搜索完成,关键词:$grep_key1 | $grep_key2  共发现$a个!!!"
        echo -e "\033[31m \033[0m"
        echo -e "\033[31m 页面搜索完成,关键词:$grep_key3 | $grep_key4  共发现$b个!!!"       
        echo -e "\033[31m \033[0m"
        echo "`date`----@$a@$b----$i" >>curl_fail.log
        mail -vvv -s "`date`网站 $i 无法访问!" admin@proyy.com < curl_fail.log 2>&1 |tee mail.log
        else
        echo -e "\033[34m `date`  \033[0m"
        echo -e "\033[34m  \033[0m"
        echo -e "\033[34m 网站 $i 页面搜索完成!!!! \033[0m"
        echo -e "\033[34m  \033[0m"
        echo -e "\033[34m 页面搜索完成,关键词:$grep_key1 | $grep_key2  共发现$a个!!!\033[0m"
        echo -e "\033[34m  \033[0m"
        echo -e "\033[34m 页面搜索完成,关键词:$grep_key3 | $grep_key4  共发现$b个!!!\033[0m"
        echo -e "\033[34m  \033[0m"
        echo -e "`date`----@$a@$b----$i" >>curl_ok.log
fi
echo "--------------------------------------------------------"
done

link.ini文件内容如下:

 

www.proyy.com
bbs.proyy.com
vip.proyy.com
proyy.com

手动边编辑利用Linux自动定时任务/etc/crontab 文件,每个小时执行一次,

 

0 */1 * * * /root/temp/auto_curl_check.sh

重点来了哈

V2代码奉上:

#!/bin/bash
curl_log="curl.log"
curl_link="`cat link.ini`"
rm -rf curl_ok.log
ccount=0

echo "========================================================"
echo "ok!共`wc -l link.ini` 个网站需要检测!!!!!"
echo ""
echo "请留意检测结果,如有报错,请关注监控邮箱!,开始检测中。。。。。。。。"
echo "========================================================"
for i in $curl_link
do 
rm -rf $curl_log
curl_get=`curl -o $curl_log $i 2>&1`
echo ""
echo "--------------------------------------------------------"
grep_key1="found."
grep_key2="Faithfully yours, frp."
grep_key3="一一网络"
grep_key4="一一网"
a="`cat $curl_log |egrep -c "$grep_key1|$grep_key2"`"
b="`cat $curl_log |egrep -c "$grep_key3|$grep_key4"`"
if [[ $a > $b ]];then
ccount=$(($ccount+1))
echo -e "\033[31m `date` \033[0m"
echo -e "\033[31m \033[0m"
echo -e "\033[31m 页面搜索完成,尴尬,您的网站\033[0m \033[41;37m $i \033[0m \033[31m 崩了!!!!!!!!!!!!!!\033[0m"
echo -e "\033[31m \033[0m"
echo -e "\033[31m 页面搜索完成,关键词:$grep_key1 | $grep_key2 共发现$a个!!!"
echo -e "\033[31m \033[0m"
echo -e "\033[31m 页面搜索完成,关键词:$grep_key3 | $grep_key4 共发现$b个!!!"
echo -e "\033[31m \033[0m"
echo "`date`----@$a@$b----$i" >>curl_fail.log
echo " " >>curl_fail.log
cat $curl_log |grep -v html >>curl_fail.log
systemctl start frpc
cc=`cat curl_fail.log|egrep -c ----@$a@$b----$i`
if [[ $cc > 1 ]];then
mail -vvv -s "重要通知:网站 $i 多次无法访问!" admin@proyy.com < curl_fail.log 2>&1 |tee mail.log
systemctl restart frpc
rm -rf curl_*.log
fi

else
ccount=$(($ccount+1))
echo -e "\033[34m `date` \033[0m"
echo -e "\033[34m \033[0m"
echo -e "\033[34m 网站 $i 页面搜索完成!!!! \033[0m"
echo -e "\033[34m \033[0m"
echo -e "\033[34m 页面搜索完成,关键词:$grep_key1 | $grep_key2 共发现$a个!!!\033[0m"
echo -e "\033[34m \033[0m"
echo -e "\033[34m 页面搜索完成,关键词:$grep_key3 | $grep_key4 共发现$b个!!!\033[0m"
echo -e "\033[34m \033[0m"
echo -e "`date`----@$a@$b----$i" >>curl_ok.log
fi
echo "--------------------------------------------------------"
echo "ok!共$ccount 个网站检测完成!!!!!"
echo ""
echo "请留意检测结果,如有报错,请关注监控邮箱!"
done
rm -rf curl.log
rm -rf mail.log
echo "========================================================"
[root@localhost temp]#

未经允许不得转载:作者:admin, 转载或复制请以 超链接形式 并注明出处 一一网络
原文地址:《【Shell】自动化运维之利用curl定时监控网站状态邮件报警v2.0》 发布于2019-06-14

分享到:
赞(0)

评论 抢沙发

评论前必须登录!

  注册



【Shell】自动化运维之利用curl定时监控网站状态邮件报警v2.0

长按图片转发给朋友

一一网络
一一网络是一个做互联网的综合资源分享平台,邹洪博客,Emblog,Blog,免费,技术教程,破解源码,资源分享,永久免费,资源分享平台,免费破解,资源分享云平台,永久免费,技术教程分享网站,免费技术学习平台,一一网络是一个专注于网络资源开发和共享加建站教程、源码下载、WordPress主题、网站开发交流、程序软件下载、建站资源、多媒体交流、电影资源、Android软件分享为一体的多互动交流平台。