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自动登录126邮箱的方法
Jul 10 Python
python中os和sys模块的区别与常用方法总结
Nov 14 Python
python cx_Oracle的基础使用方法(连接和增删改查)
Nov 19 Python
3个用于数据科学的顶级Python库
Sep 29 Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 Python
Django之Mode的外键自关联和引用未定义的Model方法
Dec 15 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
Python中判断子串存在的性能比较及分析总结
Jun 23 Python
python读取文件指定行内容实例讲解
Mar 02 Python
python实现简单井字棋小游戏
Mar 05 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 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语言流程控制中的主动与被动
2012/11/05 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
HTML DOM的nodeType值介绍
2011/03/31 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
2013/11/28 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
weex slider实现滑动底部导航功能
2017/08/28 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
python登录QQ邮箱发信的实现代码
2013/02/10 Python
Python中的True,False条件判断实例分析
2015/01/12 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
python 进程的几种创建方式详解
2019/08/29 Python
python无序链表删除重复项的方法
2020/01/17 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
数据库面试要点基本概念
2013/10/31 面试题
销售文员岗位职责
2013/11/29 职场文书
会计毕业自我鉴定
2014/02/05 职场文书
材料会计岗位职责
2014/03/06 职场文书
战略合作意向书
2014/07/29 职场文书
老龄工作先进事迹
2014/08/15 职场文书
商场收银员岗位职责
2015/04/07 职场文书
庆祝教师节主持词
2015/07/06 职场文书
如何用python绘制雷达图
2021/04/24 Python
Python基础之数据类型知识汇总
2021/05/18 Python
MySQL 开窗函数
2022/02/15 MySQL