前言
博主用军哥的 502 检测脚本修改,定时检测网站非 200 状态码邮件通知,这里要提前安装好 msmtp,以便邮件通知。
教程
下面的代码保存到check200.sh
:
#!/bin/bash
# author: lonefly
# website: https://www.yunloc.com
CheckURL="https://www.yunloc.com/"
while true; do
STATUS_CODE=$(curl -o /dev/null -m 10 --connect-timeout 10 -s -w %{http_code} $CheckURL)
if [ "$STATUS_CODE" != "200" ]; then
echo "$(date '+%H:%M:%S') 当前状态码为 $STATUS_CODE,将在 1 分钟后再次检测..."
sleep 60
STATUS_CODE=$(curl -o /dev/null -m 10 --connect-timeout 10 -s -w %{http_code} $CheckURL)
if [ "$STATUS_CODE" != "200" ]; then
echo "$(date '+%H:%M:%S') 云线路当前状态码为 $STATUS_CODE,发送通知..."
echo -e "Content-Type: text/plain; charset=UTF-8\nSubject: 云线路宕机了 - $(date '+%H:%M:%S')\nFrom: monitor@jxidc.com\nTo: xxx@189.cn\n\n 云线路宕机了,$(date '+%H:%M:%S') 检查到状态码非 200...." | msmtp xxx@189.cn
break
fi
else
echo "$(date '+%H:%M:%S') 云线路当前状态码为 $STATUS_CODE,无需通知..."
break
fi
done
检测脚本不要放在网站同一台机器上,万一网站机器挂了就无法通知了;
在cron
里添加:
*/3 * * * * /bin/bash /root/check200.sh >> /home/wwwlogs/nginx_error.log 2>&1
每 3 分钟检测一次,如果检测到非 200,间隔 1 分钟后再次检测,如果还是非 200 状态码就邮件通知。
结语
博主利用了手机邮箱来接受通知,在收 i 就邮箱里设置好邮件短信通知,这样接到宕机邮件就会有短信通知了。
© 本站文章随意转载,但请注明出处!
>> 如果您觉得本站文章对您有所帮助,购买 VPS 时候请走本站AFF链接!
>> 某些文章具有时效性,若内容有错误或已失效,欢迎在下方评论区留言向我们反馈.
>> 所有文章均基于分享的原则,所有言论均个人观点,请注意全部都不是推荐,是分享!分享!分享!
>> 所有文章均基于分享的原则,所有言论均个人观点,请注意全部都不是推荐,是分享!分享!分享!
THE END
暂无评论内容