如何用python 巡检华为交换机?
生活随笔
收集整理的這篇文章主要介紹了
如何用python 巡检华为交换机?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、目的和測試結果:
(1). SSH登錄到各個交換機收集軟件版本、CPU、內存利用率和硬件狀態信息。
(2). 生成如下的excel表格文件展示。
二、環境準備:
(1). 使用華為的eNSP模擬器來模擬真實設備,本機IP169.254.94.30,兩臺交換機的IP分別是169.254.94.31和169.254.94.32。
(2). 由于使用了第三方模塊netmiko和xlwt模塊,需要提前使用以下命令安裝。
pip?install?netmiko pip?install?xlwt(3). 創建一個名稱為:ip_list.txt 的文件用來存放巡檢的設備IP。
169.254.94.31 169.254.94.32三、python 巡檢華為交換機腳本:
#?-*-?coding:?utf-8?-*- from?netmiko.huawei.huawei?import?HuaweiSSH from?netmiko?import?NetMikoTimeoutException from?netmiko?import?NetMikoAuthenticationException from?getpass?import?getpass import?re import?io import?xlwtdef?main():"""主函數"""#?讓用戶輸入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?=?['display?version',?'display?cpu-usage',?'display?memory-usage',?'display?device']#?創建一個workbook?設置編碼workbook?=?xlwt.Workbook(encoding='utf-8')#?創建一個worksheetworksheet?=?workbook.add_sheet('My?Worksheet')#?初始化表格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?=?"硬件狀態")hang?=?0lie?=?0#?遍歷ip列表用來生成迭代器for?ip?in?iter(ip_addr):print('?')print('本次巡檢的設備IP:'?+?ip)try:S5720?=?{'device_type':?'huawei','ip':?ip,'username':?username,'password':?password,}#?實例化HuaweiSSHnet_connect?=?HuaweiSSH(**S5720)#print?("恭喜,成功登錄")#print ("設備名:"?+ str(net_connect.find_prompt().strip('<>')))ip_str?=?(ip)hang?=?hang?+?1#?初始化表格列lie?=?0worksheet.write(hang,?lie,?label=ip_str)lie?=?lie?+?1worksheet.write(hang,lie,label=net_connect.find_prompt().strip('<>'))for?cmd?in?iter(cmd_line):cmd_result?=?net_connect.send_command(cmd)regex_str?=?[]if?'VRP?(R)?software'?in?cmd_result:regex_str?=?'\(\w*\d\d.*\)'version?=?(re.search(regex_str,?cmd_result))lie?=?lie?+?1worksheet.write(hang,lie,label=version.group().strip('()'))cmd_result?=?''if?'CPU?'?in?cmd_result:regex_str?=?'\d*.\d*.\%'cpu_usage?=?(re.search(regex_str,?cmd_result))lie?=?lie?+?1worksheet.write(hang,lie,label=cpu_usage.group().strip('?'))cmd_result?=?''if?'Memory?'?in?cmd_result:regex_str?=?'\d*.\%'memory?=?(re.search(regex_str,?cmd_result))lie?=?lie?+?1worksheet.write(hang,?lie,?label=memory.group())cmd_result?=?''if?'Device?'?in?cmd_result:if?'Abnormal'?in?cmd_result:lie?=?lie?+?1worksheet.write(hang,?lie,?label=u"Abnormal")elif?'WrongType'?in?cmd_result:lie?=?lie?+?1worksheet.write(hang,?lie,?label=u"WrongType")elif?'Unregistered'?in?cmd_result:lie?=?lie?+?1worksheet.write(hang,?lie,?label=u"Unregistered")elif?'Off'?in?cmd_result:lie?=?lie?+?1worksheet.write(hang,?lie,?label=u"Off")elif?'Offline'?in?cmd_result:lie?=?lie?+?1worksheet.write(hang,?lie,?label=u"Offline")else:lie?=?lie?+?1worksheet.write(hang,?lie,?label=u"Normal")cmd_result?=?''net_connect.disconnect()except?(EOFError,?NetMikoTimeoutException):print('無法連接設備')netmikotimeout?=?(u'無法連接設備'?+?ip)hang?=?hang?+?1lie?=?0worksheet.write(hang,?lie,?label=netmikotimeout)except?(EOFError,?NetMikoAuthenticationException):print('用戶名密碼錯誤!')netmikotuehenticattion?=?(u'用戶名密碼錯誤'?+?ip)hang?=?hang?+?1lie?=?0worksheet.write(hang,?lie,?label=netmikotimeout)workbook.save('xunjian.xls')if?__name__?==?'__main__':main()四、測試過程:
有想領取太閣課程學習資料的小伙伴,或者領取本周五IE課程預習資料的,想咨詢太閣課程價格的小伙伴,你們都可以掃碼添加小老虎微信,跟小老虎聊一聊,大家共同努力,出發吧,就是現在!
總結
以上是生活随笔為你收集整理的如何用python 巡检华为交换机?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx+PHP+PHP-FPM(Fa
- 下一篇: python学习笔记1