python监控网站运行异常并发送邮件的方法


Posted in Python onMarch 13, 2015

本文实例讲述了python监控网站运行异常并发送邮件的方法。分享给大家供大家参考。具体如下:

这是一个简单的python开发的监控程序,当指定网页状态不正常是通过smtp发送通知邮件

#!/usr/bin/env python

# -*- coding: UTF-8 -*-

#author  libertyspy

import socket

import smtplib

import urllib

mail_options = {

    'server':'smtp.qq.com',#使用了QQ的SMTP服务,需要在邮箱中设置开启SMTP服务

    'port':25,             #端口

    'user':'hacker@qq.com',#发送人

    'pwd':'hacker',        #发送人的密码

    'send_to':'sniper@qq.com',  #收件者

}

msg_options={

    'user':'hacker',    #短信平台的用户名

    'pwd':'74110',      #短信平台的密码

    'phone':'12345678910',   #需要发短信的电话号码

}

test_host = 'http://www.lastme.com/'

def url_request(host,port=80):

    try:

        response = urllib.urlopen(host)

        response_code = response.getcode()

        if 200 != response_code:

            return response_code

        else:

            return True

    except IOError,e:

        return False

def send_message(msg,host,status):

    send_msg='服务器:%s挂了!状态码:%s' % (host,status)

    request_api="http://www.uoleem.com.cn/api/uoleemApi?username=%s&pwd=%s&mobile=%s&content=%s"  \

            % (msg['user'],msg['pwd'],msg['phone'],send_msg)

    return url_request(request_api)

def send_email(mail,host,status):

    smtp = smtplib.SMTP()

    smtp.connect(mail['server'], mail['port'])

    smtp.login(mail['user'],mail['pwd'])

    msg="From:%s\rTo:%s\rSubject:服务器: %s 挂了 !状态码:%s\r\n" \

         % (mail['user'],mail['send_to'],host,status)

    smtp.sendmail(mail['user'],mail['send_to'], msg)

    smtp.quit()

"""

def check_status(host,port=80):

    s = socket.socket()

    ret_msg = []

    try:

        s.connect((host,port))

        return True

    except socket.error,e:

        return False

"""

if __name__=='__main__':

    status = url_request(test_host)

    if status is not True and status is not None:

        send_email(mail_options,test_host,status)

        send_message(msg_options,test_host,status)

    else:

        pass

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
web.py中调用文件夹内模板的方法
Aug 26 Python
Python 常用 PEP8 编码规范详解
Jan 22 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
python利用requests库进行接口测试的方法详解
Jul 06 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
python爬虫解决验证码的思路及示例
Aug 01 Python
python实现最大优先队列
Aug 29 Python
python批量将excel内容进行翻译写入功能
Oct 10 Python
python logging日志模块原理及操作解析
Oct 12 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
Dec 12 Python
pytorch读取图像数据转成opencv格式实例
Jun 02 Python
如何更换python默认编辑器的背景色
Aug 10 Python
go语言计算两个时间的时间差方法
Mar 13 #Python
python实现端口转发器的方法
Mar 13 #Python
python实现超简单端口转发的方法
Mar 13 #Python
python简单程序读取串口信息的方法
Mar 13 #Python
python通过BF算法实现关键词匹配的方法
Mar 13 #Python
python通过装饰器检查函数参数数据类型的方法
Mar 13 #Python
python实现简单温度转换的方法
Mar 13 #Python
You might like
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
JavaScript 对象、函数和继承
2009/07/07 Javascript
passwordStrength 基于jquery的密码强度检测代码使用介绍
2011/10/08 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
python导入pandas具体步骤方法
2019/06/23 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
班级学习计划书
2014/04/27 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
离婚协议书范文2014
2014/10/16 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
2016大学军训心得体会
2016/01/11 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL
SSM VUE Axios详解
2021/10/05 Vue.js
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
2021/12/06 HTML / CSS
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android