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

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

图片[1]-【Shell】自动化运维之利用curl定时监控网站状态邮件报警v2.0-一一网


shell监控curl效果图:


图片[2]-【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]#
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享