轉載請注明以下內容:
作者:圈圈
ID:wljsghq
實驗拓撲:
將路由器橋接到與Linux系統同一網段,保證可以Linux系統和路由器能夠通信。
要求:
一共要制作兩個函數:
第一個函數用于獲取設備配置(注意:華為設備只獲取sysname xxx到return之間的部分)。
第二個函數每五秒獲取一次設備配置,并計算配置的MD5值。如果和之前的MD5相同就打印MD5,如果不相同就打印告警并退出。
步驟:
1.在AR上配置SSH。(略)
2.創建dev_ssh.py文件,使用paramiko連接AR。
#導入paramiko模塊 importparamiko importtime #定義ssh的函數,方便調用 defdev_ssh(ip,username,password,port=22,cmd='discu '): ssh=paramiko.SSHClient() ssh.load_system_host_keys() #如果沒有密鑰,添加密鑰 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip,port,username,password,timeout=5,compress=True) command=ssh.invoke_shell() #保證discu能夠一次將所有信息顯示出來 command.send('screen-length0temporary ') #輸入命令 command.send(cmd) time.sleep(2) output=command.recv(65535) x=output.decode('ascii') #返回shell界面顯示的內容 returnx #本地進行測試 if__name__=='__main__': print(dev_ssh('192.168.0.11','prin','Huawei@123'))
3.創建compare_md5.py文件,獲取配置的MD5值并比較。
#引入dev_ssh.py模塊中的dev_ssh函數 fromdev_sshimportdev_ssh #引入正則表達式的模塊 importre #引入計算hash值的模塊 importhashlib #引入time模塊 importtime #定義獲取配置的函數 defdev_get_config(ip,username='admin',password='Huawei@123'): try: #調用dev_ssh函數得到配置信息 dev_config_raw=dev_ssh(ip,username,password) #使用正則表示匹配sysname---return之前的配置信息 dev_config=re.findall('sysname[sS]+return',dev_config_raw)[0] #返回處理后的配置信息 returndev_config exceptException: return #定義計算和比較MD5值的函數 defcheck_diff(ip,username='admin',password='Huawei@123'): #計算初始的MD5值,并賦值給before_md5變量 m=hashlib.md5() m.update(dev_get_config(ip,username).encode()) before_md5=m.hexdigest() #每隔5s檢查重新計算一次MD5值,并與初始的MD5值進行對比 whileTrue: time.sleep(5) m=hashlib.md5() m.update(dev_get_config(ip,username,password).encode()) #如果兩次對比相同,打印出MD5值 ifbefore_md5==m.hexdigest(): print(before_md5) #如果兩次對比不相同,在打印最新的MD5值的同時,退出循環,并且打印告警信息 else: print(m.hexdigest()) print('MD5valuechanged!') break #進行測試 if__name__=='__main__': check_diff('192.168.0.11','prin')
查看結果:
在程序運行的時候,我們將配置做一定的改變,可以看到MD5值發生了改變,并且有對應的提示。在程序運行的時候,我們將配置做一定的改變,可以看到MD5值發生了改變,并且有對應的提示。
-
Linux系統
+關注
關注
4文章
595瀏覽量
27453 -
路由器
+關注
關注
22文章
3740瀏覽量
114168 -
函數
+關注
關注
3文章
4344瀏覽量
62827 -
python
+關注
關注
56文章
4802瀏覽量
84891
原文標題:使用python對比華為設備配置是否改變(eNSP模擬器)
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
python環境變量的配置pip
根據這個硬件改變配置選項代碼是否有效?
使用Python開發鴻蒙設備程序(0-初體驗)
利用Python配置Homeassistant,讓涂鴉設備連接Homekit
如何使用Python3檢查文件是否存在
![如何使用<b class='flag-5'>Python</b>3檢查文件<b class='flag-5'>是否</b>存在](https://file.elecfans.com/web1/M00/CB/C9/o4YBAF-WlwmAPvEpAAJaIZU1pyk272.png)
pycharm如何配置Python解釋器
![pycharm如何<b class='flag-5'>配置</b><b class='flag-5'>Python</b>解釋器](https://file.elecfans.com/web2/M00/70/98/pYYBAGNJE6WAaLxUAAB1FuVPDF4525.png)
如何通過Python腳本批量采集華為交換機配置
如何配置Python環境變量
pycharm怎么配置python環境變量
python軟件對電腦配置要求
python運行環境的安裝和配置
使用Python批量連接華為網絡設備
使用Python腳本備份華為交換機的配置信息
![使用<b class='flag-5'>Python</b>腳本備份<b class='flag-5'>華為</b>交換機的<b class='flag-5'>配置</b>信息](https://file1.elecfans.com/web2/M00/02/FC/wKgaoma52uiAJoXeAAIKYCVp85o057.jpg)
評論