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

  • 内容
  • 相关

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

 


shell监控curl效果图:




源码源自无聊中的一个想法,站点总是无故的被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]#

 

本文标签:

版权声明:若无特殊注明,本文皆为《一一网络》原创,转载请保留文章出处。

本文链接:【Shell】自动化运维之利用curl定时监控网站状态邮件报警v2.0 - https://www.proyy.com/10.html

百度收录:[百度未收录]

360收录:[360未收录]

搜狗收录:[搜狗未收录]

发表评论

电子邮件地址不会被公开。 必填项已用*标注

允许邮件通知

评论

1条评论
  1. avatar

    IT520 Lv.2 回复

    表情  表情 以后多来点福利呀

    IANA 保留地址用于本地回送

    00:00 / 00:00
    随机播放
    欢迎来到邹洪博客!
    邹洪