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 相关文章推荐
python中使用urllib2伪造HTTP报头的2个方法
Jul 07 Python
python获取图片颜色信息的方法
Mar 18 Python
浅析Python中将单词首字母大写的capitalize()方法
May 18 Python
Python 2与Python 3版本和编码的对比
Feb 14 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
Oct 21 Python
解决Python一行输出不显示的问题
Dec 03 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
Sep 16 Python
python tornado使用流生成图片的例子
Nov 18 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
Python实现汇率转换操作
May 03 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
May 26 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
用PHP编写和读取XML的几种方式
2013/01/12 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
取选中的radio的值
2010/01/11 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
JS学习之一个简易的日历控件
2010/03/24 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
基于node实现websocket协议
2016/04/25 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
关于不同页面之间实现参数传递的几种方式讨论
2017/02/13 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
JavaScript之面向对象_动力节点Java学院整理
2017/06/29 Javascript
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
通过实例学习Python Excel操作
2020/01/06 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
英国汽车和货车租赁网站:Hertz英国
2016/09/02 全球购物
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
给客户的检讨书
2014/12/21 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
观后感格式
2015/06/19 职场文书
python删除csv文件的行列
2021/04/06 Python
python实现会员信息管理系统(List)
2022/03/18 Python