Python 自動化運維 pycurl
阿新 • • 發佈:2017-10-12
python 自動化 運維
1.探測web服務質量(HTTP狀態碼,請求延時,HTTP頭信息,下載速度等)
web服務質量:1.服務可用性
2.服務響應速度
2.實例
import os,sys import pycurl import time URL = "http://www.baidu.com" ##目錄的URL c = pycurl.Curl() ##實例化 c.setopt(pycurl.URL,URL) ##定義請求的URL常量 c.setopt(pycurl.CONNECTTIMEOUT, 5) ##定義請求連接等待時間 c.setopt(pycurl.TIMEOUT, 5) ##定義請求超時時間 c.setopt(pycurl.NOPROGRESS, 1) ##屏蔽下載進度條 c.setopt(pycurl.FORBID_REUSE, 1) ##完成交互後強制斷開連接,不重用 c.setopt(pycurl.MAXREDIRS, 1) ##指定HTTP重定向的最大數為1 c.setopt(pycurl.DNS_CACHE_TIMEOUT,30) ##設置保存DNS信息的時間為30S indexfile = open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb") c.setopt(pycurl.WRITEHEADER, indexfile) ##將返回的HTTP HEADER定向到indexfile c.setopt(pycurl.WRITEDATA, indexfile) ##將返回的HTML內容定向到indexfile文件對象 try: c.perform() ##提交請求 except Exception,e: print "error" indexfile.close() sys.exit() NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME) ##獲取DNS解析時間 CONNECT_TIME = c.getinfo(c.CONNECT_TIME) ##獲取建立連接時間 PRETRANSFER_TIME = c.getinfo(c.PRETRANSFER_TIME) ##獲取從建立連接到準備傳輸需要時間 STARTTRANSFER_TIME = c.getinfo(c.STARTTRANSFER_TIME)##獲取從建立連接到傳輸開始需要時間 TOTAL_TIME = c.getinfo(c.TOTAL_TIME) ##獲取傳輸的總時間 HTTP_CODE = c.getinfo(c.HTTP_CODE) ##獲取HTTP狀態碼 SIZE_DOWNLOAD = c.getinfo(c.SIZE_DOWNLOAD) ##獲取下載數據包大小 HEADER_SIZE = c.getinfo(c.HEADER_SIZE) ##獲取HTTP頭部大小 SPEED_DOWNLOAD = c.getinfo(c.SPEED_DOWNLOAD) ##獲取平均下載速度 print "http狀態碼:%s " %HTTP_CODE print "dns解析時間:%.2f ms" %(NAMELOOKUP_TIME*1000) print "建立連接時間:%.2f ms" %(CONNECT_TIME*1000) print "準備傳輸時間:%.2f ms" %(PRETRANSFER_TIME*1000) print "傳輸開始時間: %2.f ms" %(STARTTRANSFER_TIME*1000) print "傳輸結束總時間: %.2f ms" %(TOTAL_TIME*1000) print "下載數據包大小: %d bytes/s" %(SIZE_DOWNLOAD) print "HTTP頭部大小: %d byte" %(HEADER_SIZE) print "平均下載速度:%d bytes/s"%(SPEED_DOWNLOAD) indexfile.close() ##關閉文件 c.close() ##關閉Curl對象
測試
Python 自動化運維 pycurl