1. 程式人生 > >2、python自動化運維——業務監控詳解

2、python自動化運維——業務監控詳解

python自動化運維

發送電子郵件模塊(smtplib

大概思路:實例化SMTP對象,連接smtp服務器以及開放的端口,調用starttls()方法建立安全鏈接,登錄賬戶和授權碼,發送郵件,最後退出

腳本示例:

#!/usr/bin/python

import smtplib

import string

host="smtp.qq.com"

subject="Test email from Python"

to="[email protected]"

send="[email protected]"

text='Python rules them all!'

body = "\r\n".join((

"From: %s" % send,

"To: %s" % to,

"Subject: %s" % subject,

"",

text

))

server=smtplib.SMTP()

server.connect(host,"587")

server.starttls()

server.login("[email protected]","lgjahba")

server.sendmail(send,to,body)

server.quit()

探測Web服務質量(pycurl

思路:導入pycurl模塊,實例化CURL對象,設置測試屬性,獲取測試結果

#!/usr/bin/python

import pycurl

import time

import sys

import os,sys

url=input("Enter the url you want to query:\n ")

c=pycurl.Curl()

c.setopt(pycurl.URL,url)

c.setopt(pycurl.CONNECTTIMEOUT,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信息的時間為30

indexfile=open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb")

c.setopt(pycurl.WRITEHEADER,indexfile)

c.setopt(pycurl.WRITEDATA,indexfile)

try:

c.perform() #提交請求

except Exception as e:

print("Connection error:",str(e))

indexfile.close()

c.close()

sys.exit()

dns_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_downland=c.getinfo(c.SIZE_DOWNLOAD) #獲取下載包大小

head_size=c.getinfo(c.HEADER_SIZE) #獲取http頭部大小

speed_downland=c.getinfo(c.SPEED_DOWNLOAD) # 獲取平均下載速度

print("HTTP狀態碼:%s" % (http_code) )

print("DNS解析時間:%.2f" % (dns_time))

print("建立連接時間:%.2f" % (connect_time))

print("準備傳輸時間:%.2f:" % (pretransfer_time))

print("傳輸開始時間:%.2f:" % (starttransfer_time))

print("傳輸結束總時間:%.2f" % (total_time))

print("下載數據包大小:%d byte" % size_downland)

print("HTTP頭部大小:%d byte" % head_size)

print("平均下載速度:%d bytes/s" % speed_downland)

indexfile.close()

c.close()


2、python自動化運維——業務監控詳解