zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python监控网站运行异常并发送邮件详解编程语言

2023-06-13 09:20:24 时间

一个简单的python开发的监控程序,当指定网页状态不正常是通过smtp发送通知邮件

#!/usr/bin/env python 

# -*- coding: UTF-8 -*- 

#author libertyspy 

#link http://www.lastme.com 

import socket 

import smtplib 

import urllib 

mail_options = { 

 server:smtp.qq.com,#使用了QQ的SMTP服务,需要在邮箱中设置开启SMTP服务 

 port:25, #端口 

 user:[email protected],#发送人 

 pwd:hacker, #发送人的密码 

 send_to:[email protected], #收件者 

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

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/8433.html

cjavapython