最近公司erp服务器无规律、不间断、时不时抽风,往往都是挂了快个把小时后其它部门的人才打电话过来说服务器挂了。于是用python写了一个简单的网页监控。程序主要监控网页状态码,200为正常,否则视为服务器挂了。每隔70秒查询一次,若发现三次连续的查询中都报错误,则通过预先设定的邮箱发送警告邮件。邮件发送后隔30分钟再次监控设定网页。
#coding:utf-8 #author:ljc #python verson 2.7.9 import smtplib import urllib import time def sendmail(): mail_to = smtplib.SMTP(‘smtp.126.com‘,25) #设置邮件发送服务器 mail_to.login("[email protected]","[email protected]#") #设置发送邮件的帐号,密码 msg = """From: system <[email protected]> To: <[email protected]> Subject: webserver_down web server is down """ mail_to.sendmail(‘[email protected]‘,‘[email protected]‘,msg) mail_to.close() if __name__ == ‘__main__‘: print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),‘server monitor is running‘ while 1: count=0 error_status_count=0 while count<3: time.sleep(70) #每隔70秒监控一次服务器 try: status=urllib.urlopen("http://192.168.0.8").code #收集监控网址的网页状态码 if status==200: print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),‘web server is functional‘ if status<>200: error_status_count+=1 print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),‘web servier is down ,error status count:‘,error_status_count,‘status number‘,status except: error_status_count+=1 #网页状态错误次数进行累加 print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),‘web servier is down ,error status count:‘,error_status_count count+=1 if error_status_count>=3: #网页状态错误超过3次自动发送报警邮件 print ‘error status count is :‘,error_status_count,‘sending email,the program wiil try to monint the server after half an hour‘ sendmail() time.sleep(1800) #邮件发送后半小时再后再次监控网页
时间: 2024-11-03 23:15:10