python3监控网站状态

发布时间:2019-09-27 07:09:51编辑:auto阅读(1854)

    前面已经写过Python3发邮件,Python发微信的文章了。直接导入即可。

    import configparser,requests
    from time import sleep
    import WeChat,Mail
    
    class checkurl(object):
    	def __init__(self,file):
    		self.file=file
    		self.cfg=configparser.ConfigParser()
    		
    	def cfg_load(self):
    		self.cfg.read(self.file)
    		self.allurl=self.cfg.items('yuming')
    		self.reload=self.cfg.get('time','reload')
    		self.mailto=self.cfg.items('mailto')
    		
    	def sendmessage(self,errinfo):
    		wechat.send('@all',errinfo)
    		for key,values in self.mailto:
    			mail.send(values,errinfo,'url访问失败报警')
    			
    	def cfg_dump(self):
    		while True:
    			for k,v in self.allurl:
    				checknum=0
    				#设置重试错误次数
    				while checknum < 5:
    					try:
    						res=requests.get(v)
    						print(v,res.status_code)
    						res.close()
    						if res.status_code >= 400:
    							errinfo=v+' '+str(res.status_code)
    							self.sendmessage(errinfo)
    						break
    					except:
    						errinfo=v+' is error'
    						print(errinfo+'\r\n请稍等,正在第',checknum+1,'次重试...')
    						sleep(1)
    						if checknum == 4:
    							print('重试仍然无法连接,正在发送微信和邮件报警...')
    							self.sendmessage(errinfo)
    					checknum=checknum+1
    			print('-----------------------------------')
    			nextcheck=0
    			while nextcheck < int(self.reload):
    				print('距离下次检测还剩',int(self.reload)-nextcheck,'秒')
    				sleep(1)
    				nextcheck=nextcheck+1
    
    if __name__ =='__main__':
    	mail=Mail.sendmail()
    	wechat=WeChat.WeChat()
    	check=checkurl('yuming.ini')
    	check.cfg_load()
    	check.cfg_dump()	


    下面是yuming.ini的配置

    [yuming]
    yuming1=https://www.baidu.com
    yuming2=http://www.qq.com
    yuming3=http://www.163.com
     
    [time]
    reload=60
     
    [mailto]
    mail1=guoyabin@ccln.gov.cn
    mail2=guoyabin@bj1921.com


关键字