zoukankan      html  css  js  c++  java
  • python3监控网站状态

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

    import configparser,requests
    from time import sleep
    import WeChat,Mail,datetime
    
    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 senderror(self,errcont):
    		enow=datetime.datetime.now()
    		now=enow.strftime('%Y-%m-%d %H:%M:%S')
    		errfile=open('url.log','a')
    		errfile.write(now)
    		errfile.write(str(errcont))
    		errfile.write('
    ')
    		errfile.close()
    			
    	def cfg_dump(self):
    		while True:
    			for k,v in self.allurl:
    				checknum=0
    				#设置重试错误次数
    				while checknum < 5:
    					try:
    						res=requests.get(v,timeout=20)
    						print(v,res.status_code)
    						res.close()
    						if res.status_code >= 400:
    							errinfo=v+' '+str(res.status_code)
    							self.sendmessage(errinfo)
    							self.senderror(errinfo)
    						break
    					except:
    						errinfo=v+' is error'
    						print(errinfo+'
    请稍等,正在第',checknum+1,'次重试...')
    						sleep(1)
    						if checknum == 4:
    							print('重试仍然无法连接,正在发送微信和邮件报警...')
    							self.sendmessage(errinfo)
    							self.senderror(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
    

      

  • 相关阅读:
    减治算法之寻找第K小元素问题
    OpenGL的版本号历史和发展
    动态注冊监听
    Thinking in Java -- 类型信息RTTI
    Unity3D
    Oracle改动字段类型
    函数定义
    foreach
    数组
    结构体
  • 原文地址:https://www.cnblogs.com/guoyabin/p/7241254.html
Copyright © 2011-2022 走看看