【Linux】结合Python 简易实现监控公司网站,邮件发送异常

28 篇文章 0 订阅
11 篇文章 0 订阅
文章讲述了作者如何编写一个Python脚本配合Linux定时任务(crontab)监控服务器状态,遇到问题时发送邮件通知,并通过sed命令确保邮件仅发送一次。脚本包括检查服务、获取页面返回码以及恢复邮件发送功能。
摘要由CSDN通过智能技术生成

目录

背景

实现思路

邮件4小时内只会发送一次,如果执行了发送邮件的脚本,就使用sed命令将对应的调用代码置为无效

请求脚本

Python邮件发送脚本

定时任务设置

恢复邮件发送能力脚本

 资料获取方法


背景

由于一些原因,博主负责测试的网站的服务器切换到了香港,切换后出现了多次访问超时的情况

于是主动请缨写一个自动监测的脚本,本来准备完全使用shell来写,后来发现shell发送邮件只能在测试机之间进行,所以添加了增加了一个Python文件来完成该功能。

实现思路

使用Linux系统自带的定时模块crontab,设置每隔五分钟调用一次检查脚本检查服务,如果发现异常,调用Python脚本发送邮件

邮件4小时只会发送一次,如果执行了发送邮件的脚本,就使用sed命令将对应的调用代码置为无效
  • 邮件接受人和需要监控的url都放在配置文件中,方便后续扩展。
  • 使用crontab的好处是,只要系统在运行,脚本就能正常运行。

请求脚本

#! /bin/bash
#把所有标准输出重定向到到日志文件中
exec 1>>/home/XXX/Monitor/cfg.log
#获取配置文件中的url
urls=`cat /home/XXX/Monitor/url.inc|grep -v '#'`
for i in ${urls}
    do
    #获取页面返回码
    result=`curl -I -m 10 -o /dev/null -s -w %{http_code} ${i}`
 
    #日志内容(标准输出)
    date;echo ${result};echo $i ;echo '-----------------------------'
 
    #判断数据是否异常,如果异常就调用发送邮件的脚本,
    #只发送一次邮件,如果执行了发送邮件的代码,就将该段代码置为无效
    [ "$result" = 200 ]  && `python /home/XXX/Monitor/mail_sender.py $i ${result}` && `sed -i 's/\&\&/\#\#/' /home/XXX/Monitor/request.sh`
done

Python邮件发送脚本

​
#! /bin/bash
#把所有标准输出重定向到到日志文件中
exec 1>>/home/XXX/Monitor/cfg.log
#获取配置文件中的url
urls=`cat /home/XXX/Monitor/url.inc|grep -v '#'`
for i in ${urls}
    do
    #获取页面返回码
    result=`curl -I -m 10 -o /dev/null -s -w %{http_code} ${i}`
 
    #日志内容(标准输出)
    date;echo ${result};echo $i ;echo '-----------------------------'
 
    #判断数据是否异常,如果异常就调用发送邮件的脚本,
    #只发送一次邮件,如果执行了发送邮件的代码,就将该段代码置为无效
    [ "$result" = 200 ]  && `python /home/XXX/Monitor/mail_sender.py $i ${result}` && `sed -i 's/\&\&/\#\#/' /home/XXX/Monitor/request.sh`
done

​

定时任务设置

crontab -e 打开定时任务编辑器,添加下面两行

*/5    *       *         *     *  bash /home/brenda/CFG_Monitor/request.sh  >> /home/brenda/CFG_Monitor/cfg.log
*      */4       *         *     *  bash /home/brenda/CFG_Monitor/recover.sh  >> /home/brenda/CFG_Monitor/cfg.log

恢复邮件发送能力脚本

#! /bin/bash
sed -i '/\[/{s/\#\#/\&\&/g}' /home/XXX/Monitor/request.sh

 资料获取方法

【留言777】

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值