一、目的和測試結果:
(1). SSH登錄到各個交換機收集軟件版本、CPU、內存利用率和硬件狀態(tài)信息。
(2). 生成如下的excel表格文件展示。
二、環(huán)境準備:
(1). 使用華為的eNSP模擬器來模擬真實設備,本機IP169.254.94.30,兩臺交換機的IP分別是169.254.94.31和169.254.94.32。
(2). 由于使用了第三方模塊netmiko和xlwt模塊,需要提前使用以下命令安裝。
pipinstallnetmiko pipinstallxlwt
(3). 創(chuàng)建一個名稱為:ip_list.txt 的文件用來存放巡檢的設備IP。
169.254.94.31 169.254.94.32
三、python 巡檢華為交換機腳本:
#-*-coding:utf-8-*- fromnetmiko.huawei.huaweiimportHuaweiSSH fromnetmikoimportNetMikoTimeoutException fromnetmikoimportNetMikoAuthenticationException fromgetpassimportgetpass importre importio importxlwt defmain(): """ 主函數 """ #讓用戶輸入ssh用戶名密碼 username=input('請輸入ssh用戶名:') password=getpass('請輸入ssh密碼:') #打開ip_list.txt文件獲取IP列表 ip_list=open('ip_list.txt','r') ip_addr=ip_list.readlines() ip_list.close() cmd_line=['displayversion','displaycpu-usage','displaymemory-usage','displaydevice'] #創(chuàng)建一個workbook設置編碼 workbook=xlwt.Workbook(encoding='utf-8') #創(chuàng)建一個worksheet worksheet=workbook.add_sheet('MyWorksheet') #初始化表格 worksheet.write(0,0,label="交換機IP") worksheet.write(0,1,label="交換機名稱") worksheet.write(0,2,label="軟件版本") worksheet.write(0,3,label="CPU利用率") worksheet.write(0,4,label="內存利用率") worksheet.write(0,5,label="硬件狀態(tài)") hang=0 lie=0 #遍歷ip列表用來生成迭代器 foripiniter(ip_addr): print('') print('本次巡檢的設備IP:'+ip) try: S5720={ 'device_type':'huawei', 'ip':ip, 'username':username, 'password':password, } #實例化HuaweiSSH net_connect=HuaweiSSH(**S5720) #print("恭喜,成功登錄") #print("設備名:"+str(net_connect.find_prompt().strip('<>'))) ip_str=(ip) hang=hang+1 #初始化表格列 lie=0 worksheet.write(hang,lie,label=ip_str) lie=lie+1 worksheet.write(hang, lie, label=net_connect.find_prompt().strip('<>')) forcmdiniter(cmd_line): cmd_result=net_connect.send_command(cmd) regex_str=[] if'VRP(R)software'incmd_result: regex_str='(w*dd.*)' version=(re.search(regex_str,cmd_result)) lie=lie+1 worksheet.write(hang, lie, label=version.group().strip('()')) cmd_result='' if'CPU'incmd_result: regex_str='d*.d*.\%' cpu_usage=(re.search(regex_str,cmd_result)) lie=lie+1 worksheet.write(hang, lie, label=cpu_usage.group().strip('')) cmd_result='' if'Memory'incmd_result: regex_str='d*.\%' memory=(re.search(regex_str,cmd_result)) lie=lie+1 worksheet.write(hang,lie,label=memory.group()) cmd_result='' if'Device'incmd_result: if'Abnormal'incmd_result: lie=lie+1 worksheet.write(hang,lie,label=u"Abnormal") elif'WrongType'incmd_result: lie=lie+1 worksheet.write(hang,lie,label=u"WrongType") elif'Unregistered'incmd_result: lie=lie+1 worksheet.write(hang,lie,label=u"Unregistered") elif'Off'incmd_result: lie=lie+1 worksheet.write(hang,lie,label=u"Off") elif'Offline'incmd_result: lie=lie+1 worksheet.write(hang,lie,label=u"Offline") else: lie=lie+1 worksheet.write(hang,lie,label=u"Normal") cmd_result='' net_connect.disconnect() except(EOFError,NetMikoTimeoutException): print('無法連接設備') netmikotimeout=(u'無法連接設備'+ip) hang=hang+1 lie=0 worksheet.write(hang,lie,label=netmikotimeout) except(EOFError,NetMikoAuthenticationException): print('用戶名密碼錯誤!') netmikotuehenticattion=(u'用戶名密碼錯誤'+ip) hang=hang+1 lie=0 worksheet.write(hang,lie,label=netmikotimeout) workbook.save('xunjian.xls') if__name__=='__main__': main()
四、測試過程:
審核編輯:湯梓紅
-
cpu
+關注
關注
68文章
11031瀏覽量
215924 -
python
+關注
關注
56文章
4823瀏覽量
86136 -
華為交換機
+關注
關注
0文章
13瀏覽量
6401
原文標題:python 巡檢華為交換機
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
華為路由器交換機VLAN配置實例
接入層交換機、匯聚層交換機和核心層交換機的區(qū)別
華為第五代敏捷交換機S12700:重新定義交換機
工業(yè)控制交換機和工業(yè)交換機的區(qū)別
核心交換機、匯聚交換機與普通交換機的區(qū)別介紹
家庭交換機怎么安裝_交換機網速是平分的嗎
什么是網絡交換機?網絡交換機的分類標準
核心交換機、匯聚交換機、接入交換機之間的對比分析
思科、華為、H3C交換機巡檢命令大全
如何使用Python對交換機進行自動化巡檢?
PoE交換機可以當普通交換機使用嗎
使用Python腳本備份華為交換機的配置信息

評論