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读取Android permission文件
Nov 01 Python
python 中random模块的常用方法总结
Jul 08 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
python 移动图片到另外一个文件夹的实例
Jan 10 Python
python对象与json相互转换的方法
May 07 Python
Python替换月份为英文缩写的实现方法
Jul 15 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 Python
python基于socket函数实现端口扫描
May 28 Python
python collections模块的使用
Oct 16 Python
python 如何对logging日志封装
Dec 02 Python
Python的代理类实现,控制访问和修改属性的权限你都了解吗
Mar 21 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
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
PHP合并数组+与array_merge的区别分析
2010/08/01 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
Laravel5中contracts详解
2015/03/02 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
JQuery的html(data)方法与<script>脚本块的解决方法
2010/03/09 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
解析js如何获取css样式
2016/12/11 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
手把手教你如何使用nodejs编写cli命令行
2018/11/05 NodeJs
原生js实现无缝轮播图
2020/01/11 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
使用JavaScript实现贪吃蛇游戏
2020/09/29 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
pygame实现飞机大战
2020/03/11 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
私有程序集与共享程序集有什么区别
2013/04/05 面试题
高分子材料个人求职信范文
2013/09/25 职场文书
军人违纪检讨书
2014/02/04 职场文书
促销活动总结
2014/04/28 职场文书
个人自查自纠材料
2014/10/14 职场文书
店铺转让协议书
2014/12/02 职场文书
SQL 聚合、分组和排序
2021/11/11 MySQL
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js