f5提供了各種配置和查詢的restful api,通過這些api可以進行各種查詢和配置。本文通過f5 提供的restful api 獲取ssl 狀態,並且篩選出即將過期的ssl 證書,傳送郵件提醒。
f5operation 類中方法介紹:
本例中查詢除了獲取f5上ssl 證書狀態外,還需要利用公司系統進行查詢,不具有通用性,因此不在此貼出**。
import requests
import json
import win32com
class
f5operation
:def
__init__
(self, host, username, password)
: self.username = username
self.password = password
self.url = host
deflogin
(self)
: auth_url = self.url +
"/mgmt/shared/authn/login"
data =
header =
ret = requests.post(auth_url, data=json.dumps(data)
, verify=
false
, headers=header)
.json(
)if ret.get(
"token"
)return ret[
'token'][
'token'
]else
:print
("cannot get token of %s"
%self.host)
sys.exit(1)
defget_metric
(self, metric_url)
: full_url = self.url + metric_url
print
(full_url)
token = self.login(
)print
(token)
header =
metric_ret = requests.get(full_url, headers=header, verify=
false,)
.json(
)return metric_ret
由於是在windows下程式設計,郵件傳送可以選擇win32com 中呼叫本機的outlook程式傳送,也可以利用smtplib 傳送郵件。因為smtplib需要設定smtp伺服器位址,當前沒有公司的smtp伺服器位址,因此使用win32com 呼叫outlook傳送郵件
win32com是功能強大的模組,可以呼叫window下各種程式。
郵件傳送類實現如下:
import win32com.client as com
class
outlook
:def
__init__
(self)
:pass
@staticmethod
defsend_mail
(revc, subject,body, html, display, cc=
none
,bcc=
none):
outlook = com.dispatch(
) mail = outlook.createitem(0)
mail.to = revc
mail.subject = subject
if cc:
mail.cc = cc
if bcc:
mail.bcc = bcc
if html:
""" set the format of mail
1 - plain text
2 - html
3 - rich text
"""mail.bodyformat =
2 mail.body = body
if display:
mail.display(
true
)else
: mail.send(
)
有了這兩個類後,在主函式中即可實現需求。
根據官方文件(apiref_tm_sys_file_system-ssl-cert.html)和web檢視路徑,初步認為/mgmt/tm/sys/file/system-ssl-cert 是獲取ssl 證書狀態的url
多次嘗試,無法獲取到證書狀態,懷疑是許可權或方法問題,嘗試從/mgmt/tm/ltm/pool獲取pool資訊,獲取成功,說明方法和許可權沒有問題;
退一步,使用/mgmt/tm/sys/file 獲取file中的資訊,獲得一下資訊:
},
},},
},},
},},
},},
},},
},},
}]}
嘗試從/mgmt/tm/sys/file/ssl-cert獲取,可以獲取到ssl證書列表和狀態資訊。返回官方文件
apiref_tm_sys_file.html
可見文件中也提供了各種檔案中的url。在使用url獲取資訊,且對該功能不熟悉時,不要盲目,先看官方文件,如果乙個url無法獲取,及時換另乙個。
如果需要對多個f5 ssl 證書進行檢查。可以利用利用多線程序方式實現。
team training 5 F 最小生成樹
這道題很好,我一開始用的是那種苗條生成樹 最大邊 最小邊的 方式,這樣當然是錯了。突然發現,這樣的學習是比較有收穫的,我一定要多做這種學習,而且要快 gym 100803f 看了大佬的 太好了,學到了很多。1 del的技術 2 用bool f 來重用 3 刪掉邊的思想。4 includeusing ...
如何利用python生成MD5並去重
給每個檔案生成乙個md5值,來對檔案進行加密,是常用的檔案校驗方法,但是md5的缺陷就是不能防止碰撞,所以不同檔案生成的md5可能是相cyldbf同的,因此就需要進行去重操作。為方便演示,我用txt檔案代替資料夾,用txt檔案中的字串代替資料夾中檔案來生成md5值並進行去重操作。每個txt檔案中有字...
利用Python生成檔案md5校驗值函式的方法
前言 在linux有個命令叫做md5sum,能生成檔案的md5值,一般情況下都會將結果記錄到乙個檔案中用於校驗使用,比如會這樣使用 crazyant lo程式設計客棧calhost pythonmd5 more sample file www.crazyant.net www.51projob.co...