【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]#
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END