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正则表达式中的括号匹配问题
Dec 14 Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 Python
linecache模块加载和缓存文件内容详解
Jan 11 Python
python的staticmethod与classmethod实现实例代码
Feb 11 Python
python单向循环链表原理与实现方法示例
Dec 03 Python
Windows下Anaconda和PyCharm的安装与使用详解
Apr 23 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
Jul 07 Python
python操作微信自动发消息的实现(微信聊天机器人)
Jul 14 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
如何在 Matplotlib 中更改绘图背景的实现
Nov 26 Python
Python实现滑雪小游戏
Sep 25 Python
Python中request的基本使用解决乱码问题
Apr 12 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
第十一节 重载 [11]
2006/10/09 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
js实现上传图片之上传前预览图片
2013/03/25 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
12步教你理解Python装饰器
2016/02/25 Python
详解Python中for循环是如何工作的
2017/06/30 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
个人授权委托书
2014/04/03 职场文书
学校学期工作总结
2015/08/13 职场文书