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

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

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

#!/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服务器中并并且为该脚本赋予可执行权限:

chmod u+x py3_monitor.py

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

*/5 * * * * ./path/to/py3_monitor.py

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

关注公号

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

本文分享自微信公众号 - yale记(python_yale_learning)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏网站建设知识

SEO外链建设形式有哪些?

外链建设对于大连网站优化有着重要作用,一个优质的外链可以快速的提高网站的曝光度和转换率。那么,外链建设的形式有哪些呢?我们一起来学习一下吧!

9210
来自专栏服务器优惠介绍

建站教程:云服务器使用(完整版)

(学生主机免认证链接)购买地址:https://cloud.tencent.com/redirect.php

84010
来自专栏达达前端

【一起来烧脑】读懂HTTP知识体系

读懂HTTP很重要,参加过面试的小伙伴都很清楚,无论是技术面试面试题出得怎样,都有机会让你讲解一下HTTP,大部分都会问一下。

9630
来自专栏holer

微信公众号或小程序怎样调用到本机的WEB服务

内网主机上部署了WEB服务端,怎样将本地的WEB服务映射到外网,提供给微信公众号和小程序调用?

14810
来自专栏JavaEdge

高可用服务架构设计(12) - 基于request cache请求缓存技术优化批量商品数据查询接口

3、查找是否开启了request cache,是否有请求缓存,如果有缓存,直接取用缓存,返回结果

13940
来自专栏网站建设知识

网站空间的类型

网站空间就是指用来存储网站的文字、文档、数据库、图片等的空间。在大连网站建设完成后,网站的持有者需要购买空间才能发布内容。网站是否能够让用户拥有良好的体验以及是...

14440
来自专栏个人帖子

一位资深程序员大牛给予Java初学者的学习路线建议

Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱...

7800
来自专栏网站建设知识

网站外链建设,对SEO有什么影响?

外链建设对网站的优化排名有没有作用呢?答案是肯定的。外链建设对于大连seo是非常重要的,虽然搜索引擎更改了算法,让外链显得没那么重要了,但外链的作用还是存在的。...

8730
来自专栏宅机吧

【小程序云开发】云函数路由的高效配置

在小程序开发工具中,启动云开发默认模板,提供的云函数办法是一个请求对应一个云函数,比如说,我要获取用户登录数据,就添加一个login函数,然后前端就请求这个lo...

19130
来自专栏Linux知识积累

Linux 系统运行速度太慢的关键原因,看看这篇

https://mp.weixin.qq.com/s/_OHDxCIWQDEMa3vsEXgVDA

22830

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励