亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

利用Python自動監控網站并發送郵件告警的方法

2020-01-04 17:25:56
字體:
來源:轉載
供稿:網友

前言

因為有一些網站需要每日檢查是否有問題,所以需要一個報警監控的機制,這個需要你指定你發送的郵箱和你接收的郵箱,就可以做到對網站自動監控了。

這里用的是python3.5

需要安裝的插件:

      1、smtplib:發郵件需要用到

      2、pycurl:訪問網站時會需要用到

      3、linecache:在讀取txt網站清單時需要用到

具體思路:

python程序從txt里面批量讀取到網站的信息,通過Curl.py模擬瀏覽器去訪問網站,并且把訪問的結果寫入到以自己的網站名稱-日期.txt格式的文件中記錄;有幾種情況:

1、如果發現打不開了,直接發郵件提示網站已經打不開

2、發現可以打開,讀取文件中上一次訪問的情況(讀取txt文件最后一行),

    1)如果發現上一次是打不開的,發郵件提醒網站已經恢復了

    2)如果發現上一次是打得開的(200的返回碼),只是記錄網站訪問的日志就可以了

總共4個文件

Email.py是郵件類,主要用來發郵件的時候調用,這里需要按照你的情況改成你的郵箱(msg['From']),郵箱服務器地址(SMTP地址),和你的郵箱密碼(SMTP.login)

Email.py

#!/usr/bin/python#-*- coding:utf-8 -*-import sysimport smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartclass Email_send(object): def __init__(self,msgTo,data2,Subject):  self.msgTo=msgTo  self.data2=data2  self.Subject=Subject def sendEmail(self):  # (attachment,html) = content  msg = MIMEMultipart()  msg['Subject'] = self.Subject  msg['From'] = 'xxxx@xxxx.com.cn'  msg['To'] = self.msgTo  html_att = MIMEText(self.data2, 'html', 'utf-8')  #att = MIMEText(attachment, 'plain', 'utf-8')  msg.attach(html_att)  #msg.attach(att)  try:   smtp = smtplib.SMTP()   smtp.connect('smtp.xxxx.com', 25)   smtp.login(msg['From'], 'xxxx') #改成自己的郵箱密碼   smtp.sendmail(msg['From'], msg['To'].split(','), msg.as_string())   return('郵件發送成功')  except Exception as e:   print('--------------sss------',e) def curl(self):  import pycurl  c=pycurl.Curl()  #url="www.luoan.com.cn"  #indexfile=open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb")  c.setopt(c.URL,url)  c.setopt(c.VERBOSE,1)  c.setopt(c.ENCODING,"gzip")  #模擬火狐瀏覽器  c.setopt(c.USERAGENT,"Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0")  return c

Curl.py 主要用來執行模擬瀏覽器訪問網站并返回結果的文件

#!/usr/bin/python#-*- coding:utf-8 -*-import sysimport pycurlclass Curl(object): def __init__(self,url):  self.url=url def Curl_site(self):  c=pycurl.Curl()  #url="www.luoan.com.cn"  #indexfile=open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb")  c.setopt(c.URL,self.url)  c.setopt(c.VERBOSE,1)  c.setopt(c.ENCODING,"gzip")  #模擬火狐瀏覽器  c.setopt(c.USERAGENT,"Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0")  return c

site_moniter.py 這個文件為主程序,主要執行調用上面的函數,讀取txt文件中的網站清單,如果網站打不開就發郵件出來告警

需要注意:

      1、把xxxx@xxxx.com改成你自己的郵箱,

      2、把文件路徑改成自己的真實路徑

#!/usr/bin/python#-*- coding:utf-8 -*-import pycurlimport osimport sysimport linecacheimport time #引入事件類,用來獲取系統當前時間#from ceshi import Studentfrom Email import Email_sendfrom Curl import Curl#bart = Student('mafei',59)#bart.print_score()def script(urls,type): msgTo = 'xxxx@xxxx.com' now_time=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) j=1#  data2=[{'aa':'aa'}] for url_split in urls:  #print(url_split)  url_1=url_split.split('---')  url=url_1[1]  recovery_title = "監控通知----%s url:%s" % (url_1[0], url) + "在" + time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) + "已經恢復"  down_title = "監控通知----%s url:%s" % (url_1[0], url) + "在" + time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) + "無法打開"  #print('~~~~~~~~~~~~~~~~~~~')  #print(url)  #引用爬去網站的類,調用結果  url_result = Curl(url)  c = url_result.Curl_site()  try:   c.perform()   code = str(c.getinfo(c.HTTP_CODE))   print(code+'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')  except Exception as e:   print('--------錯誤信息:--------',e)   #indexfile.close()   #c.close()  code = str(c.getinfo(c.HTTP_CODE))  # print(code+'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')  filename = '%s-%s.txt' % (url_1[0], time.strftime("%Y-%m-%d", time.localtime(time.time())))  #判斷如果在網站無法打開的情況下  if code == '0' or code=='400' or code=='500' or code=='404':   resolveTime = 0   Connection_Time = 0   Transfer_Total_Time = 0   Total_Time = 0   # print('為000000000000000000000000000000000000000000')   data3 = '網站:%s無法打開%s' % (url_1[0], url)   # indexfile.close()   # c.close()   #判斷網站如果掛了就發郵件   stat3 = Email_send(msgTo, data3, down_title)   resole=stat3.sendEmail()   print(resole)   print(data3 + '郵件已經發送')  else:   #resolveTime = str(c.getinfo(c.NAMELOOKUP_TIME) * 1000) + " ms"   # Connection_Time=str(float(c.getinfo(c.CONNECT_TIME)*1000-c.getinfo(c.NAMELOOKUP_TIME)*1000))+" ms"   #Connection_Time = str(c.getinfo(c.CONNECT_TIME) * 1000 - c.getinfo(c.NAMELOOKUP_TIME) * 1000) + " ms"   # Connection_Time=round(float(Connection_Time))   #Transfer_Total_Time = str(c.getinfo(c.TOTAL_TIME) * 1000 - c.getinfo(c.PRETRANSFER_TIME) * 1000) + " ms"   #Total_Time = str(c.getinfo(c.TOTAL_TIME) * 1000) + " ms"   # data2=data   # data={'url':url,'HTTP CODE':code,'resolveTime':resolveTime,'Connection_Time':Connection_Time,'Transfer_Total_Time':Transfer_Total_Time,'Total_Time':Total_Time}   print('網站可以正常打開')   #f = open(filename, 'a',encoding='utf-8')   file_exit=os.path.exists(filename)   #print(file_exit)   #判斷這個日志文件存不存在   if(file_exit):    #讀取文件最后一行,為了讀取出來最后一次的狀態值    file = open(filename, 'r',encoding='utf-8')    linecount = len(file.readlines())    data = linecache.getline(filename, linecount)    file.close    if data == '':     print('這是'+data+'為空的數據')    else:     print('其他信息%s'%(data))     explode = data.split('----')     #判斷如果讀取出來的值,最后一次是異常的情況就告警     if explode[3]=='0/n' or explode[3]=='400/n' or explode[3]=='500' or explode[3]=='404':      data3 = '網站:%s在%s已經恢復%s' % (url_1[0], now_time,url)      stat3 = Email_send(msgTo, data3, recovery_title)      resole = stat3.sendEmail()      print(resole)      print(data3 + '郵件已經發送')     else:      print('最后一次記錄為其他值:%s'%(explode[3])+'-----')   else:    print('文件不存在')  data2 = '/n' + url_1[0] + '----' + url + '-----' + time.strftime("%H:%M:%S", time.localtime(time.time())) + '-------' + code  print('data2數據寫入成功:' + data2)  file = open(filename, 'a', encoding='utf-8')  file.write(data2)  file.close# bart = Student(data2,59)# bart.print_score()if __name__ == "__main__": type = "監控通知-測試" + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) data1=['公司門戶---www.luoan.com.cn','公司平臺---yun.luoan.com.cn'] #script(data1,type) #中心層面的網站清單 file=open('D:/python/site_moniter/zhongxin.txt') data2=[] while 1:  line2 =file.readline()  print(line2)  if not line2:   break  data2.append(line2[0:-1]) #data2=['www.luoan.com.cn','yun.luoan.com.cn','www.qq.com'] print(data2) script(data2,title)

總結

利用Python自動監控網站并發送郵件告警的方法到這就基本結束了,希望對大家的學習工作能有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人在线视频| 伊人久久五月天| 亚洲黄色在线看| 久久久99免费视频| 亚洲欧美国产一本综合首页| 亚洲福利视频免费观看| 亚洲精品福利在线| 欧美一级黑人aaaaaaa做受| 欧美日韩第一视频| 中文在线资源观看视频网站免费不卡| 久久免费福利视频| 亚洲一品av免费观看| 亚洲丝袜av一区| 国产91成人video| 欧美精品一二区| 日韩av免费看网站| 日韩中文字幕在线看| 国产视频久久久久久久| 日韩av不卡电影| 国产久一一精品| 欧美日韩第一页| 亚洲欧洲国产一区| 中文字幕国产精品久久| 久久久久久噜噜噜久久久精品| 久久色精品视频| 88国产精品欧美一区二区三区| 日韩av片永久免费网站| 久久久久久久国产精品| 久久久国产一区二区| 97精品免费视频| 亚洲国产日韩欧美在线动漫| 欧美激情一区二区三区高清视频| 萌白酱国产一区二区| 日韩电影大片中文字幕| 韩国19禁主播vip福利视频| 91人人爽人人爽人人精88v| 亚洲精品久久久久久久久久久久久| 国产精品日韩精品| 国产精品激情av电影在线观看| 欧美巨猛xxxx猛交黑人97人| 午夜美女久久久久爽久久| 亚洲老头老太hd| 在线观看日韩专区| 久久中文字幕国产| 尤物九九久久国产精品的分类| 午夜精品久久久久久99热软件| 久久精品亚洲94久久精品| 一区二区日韩精品| 欧美日韩午夜剧场| 国产一区二区三区三区在线观看| 久久久久久中文| 欧美裸身视频免费观看| 亚洲精品国产精品自产a区红杏吧| 亚洲激情久久久| 亚洲一区二区久久久久久久| 欧美—级高清免费播放| 欧美精品在线网站| 日韩av在线免费观看| 亚洲国产精品小视频| 日韩成人久久久| 亚洲精品久久久久久久久| 欧美疯狂做受xxxx高潮| 大胆欧美人体视频| 欧美高清在线视频观看不卡| 亚洲天堂影视av| 庆余年2免费日韩剧观看大牛| 久久精品久久久久久| 在线观看国产精品淫| 91成人在线播放| 国内自拍欧美激情| 日韩欧美亚洲范冰冰与中字| 91久久国产婷婷一区二区| 欧美一级淫片播放口| 国产精品黄视频| 欧洲精品毛片网站| 亚洲最大激情中文字幕| 亚洲美女福利视频网站| 国产精品久久久999| 亚洲乱码av中文一区二区| 亚洲国产高清福利视频| 日韩经典第一页| 久久久久久高潮国产精品视| 欧美一级电影免费在线观看| 日韩在线播放视频| 久久九九免费视频| 成人午夜两性视频| 欧美福利在线观看| 中文字幕日韩欧美在线视频| 欧美激情第6页| 成人h猎奇视频网站| 在线日韩av观看| 91精品久久久久久久久久久久久| 欧美成人精品在线| 欧美黑人巨大xxx极品| 青草热久免费精品视频| 国产精品草莓在线免费观看| 亚洲激情免费观看| 国产精品男人爽免费视频1| 中日韩午夜理伦电影免费| 91产国在线观看动作片喷水| 亚洲精品一区二区三区不| 亚洲一区二区三区在线免费观看| 91精品啪在线观看麻豆免费| 久久综合久久八八| 亚洲丝袜一区在线| 国产精品h片在线播放| 久久99久久99精品中文字幕| 欧美疯狂xxxx大交乱88av| 日韩一区二区三区国产| 日韩视频永久免费观看| 久久久久久久久国产精品| 国产精品三级久久久久久电影| 欧美在线观看网址综合| 九九久久国产精品| 91精品国产自产91精品| 久久九九热免费视频| 91精品视频免费| 欧美日韩综合视频网址| 欧美激情一区二区三区在线视频观看| 国产精品久久久久久av福利软件| 欧美成人合集magnet| 7777kkkk成人观看| 中文字幕欧美专区| 日韩av成人在线| 97国产真实伦对白精彩视频8| 一区二区三区在线播放欧美| 国产日韩欧美在线| 精品久久香蕉国产线看观看亚洲| 国产精品一区二区三区成人| 亚洲a中文字幕| 91国内揄拍国内精品对白| 97色在线视频观看| 国产精品专区一| 日韩免费在线视频| 韩剧1988在线观看免费完整版| 欧洲成人免费视频| 亚洲精品小视频在线观看| 久久久中精品2020中文| 国产亚洲视频在线观看| 久久综合久久美利坚合众国| 色噜噜狠狠色综合网图区| 欧美电影免费播放| 国产97色在线| 国产专区欧美专区| 日韩欧美亚洲成人| 欧美精品成人在线| 欧美日韩综合视频网址| 亚洲精品自拍偷拍| 亚洲精品国精品久久99热| 色诱女教师一区二区三区| 精品色蜜蜜精品视频在线观看| 91在线高清视频| 97av在线影院| 美日韩在线视频| 亚洲a一级视频| 久久精品免费播放| 欧美精品一区二区三区国产精品| 亲爱的老师9免费观看全集电视剧| 国产成人av网| 中文字幕亚洲自拍| 亚洲欧美变态国产另类| 国产免费观看久久黄| 国产精品激情av在线播放| 精品视频久久久久久|