前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python自动化脚本之监控web网站发送邮件提醒并重启服务器

python自动化脚本之监控web网站发送邮件提醒并重启服务器

作者头像
XXXX-user
修改2019-07-30 10:21:58
1.8K0
修改2019-07-30 10:21:58
举报
文章被收录于专栏:不仅仅是python

今天来学一个真实的案例监控一个网站的运行状态,如果网站因为其他原因导致无法响应和访问,我们将发送电子邮件提醒管理员并重启web服务器。

思路过程为:使用requests请求一个要监控的web网址,根据返回的状态值不是200或者出现异常的时候,我们发送邮件并重启服务器。接下来看代码部分,(该代码脚本使用在linux服务器中运行的web服务为例):

代码语言:javascript
复制

#!/usr/bin/env python
import os
import smtplib
import requests

#电子邮件的账号 密码
EMAIL_ADDRESS = os.environ.get('EMAIL_USER')
EMAIL_PASSWORD = os.environ.get('EMAIL_PASS')
#获取收件人的邮箱地址
EMAIL_RECEVIER = os.environ.get('EMAIL_RECEVIER')
#定义提醒用户发送邮件方法
def notify_user():
    with smtplib.SMTP('smtp.qq.com', 25) as smtp:
        smtp.ehlo()
        smtp.starttls()
        smtp.ehlo()

        smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD)

        subject = '您的站点崩溃了!'
        body = '确保服务器已经重新启动完成。'
        msg = f'主题: {subject}\n\n{body}'
        smtp.sendmail(EMAIL_ADDRESS, EMAIL_RECEVIER, msg)

#定义重启服务器方法
def reboot_server():
    #直接重启 linux web服务器
    os.system("reboot")


try:
    #比如这里监控一个网址:奕中世界
    r = requests.get('https://www.liuluanyi.cn', timeout=5)
    if r.status_code != 200:
        notify_user()
        reboot_server()
    else:
        # op
except Exception as e:
    notify_user()
    reboot_server()

我们将该脚本另存为py3_monitor.py,放在web服务器中并并且为该脚本赋予可执行权限:

代码语言:javascript
复制
chmod u+x py3_monitor.py

我们创建一个定时任务,每隔5分钟执行一次这个脚本,这里输入crontab -e

代码语言:javascript
复制
*/5 * * * * ./path/to/py3_monitor.py

至此一个简单的自动化监控脚本就算完成了,我们下节见。

关注公号

下面的是我的公众号二维码图片,欢迎关注。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yale记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关注公号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档