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检测网站链接是否已存在
Apr 07 Python
教你用Python脚本快速为iOS10生成图标和截屏
Sep 22 Python
python实现感知器
Dec 19 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
python正则表达式去除两个特殊字符间的内容方法
Dec 24 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
python urllib爬虫模块使用解析
Sep 05 Python
python 实现方阵的对角线遍历示例
Nov 29 Python
基于python实现计算且附带进度条代码实例
Mar 31 Python
Python基于locals返回作用域字典
Oct 17 Python
python实现扫雷游戏的示例
Oct 20 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 和 MySQL 基础教程(三)
2006/10/09 PHP
PHP+javascript模拟Matrix画面
2006/10/09 PHP
解析php取整的几种方式
2013/06/25 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
比Jquery的document.ready更快的方法
2010/04/28 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
简介JavaScript中的italics()方法的使用
2015/06/08 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
python requests库的使用
2021/01/06 Python
详解Html5 Canvas画线有毛边解决方法
2018/03/01 HTML / CSS
英国电信商店:BT Shop
2019/12/17 全球购物
施工资料员的岗位职责
2013/12/22 职场文书
秸秆管理实施方案
2014/03/15 职场文书
六一亲子活动总结
2014/07/01 职场文书
倡议书的格式写法
2015/04/28 职场文书
银行工作心得体会范文
2016/01/23 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript
如何使用CocosCreator对象池
2021/04/14 Javascript