轉載請注明以下內容:
來源:公眾號【網絡技術干貨圈】
作者:圈圈
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文章
614瀏覽量
29904 -
路由器
+關注
關注
22文章
3907瀏覽量
119571 -
函數
+關注
關注
3文章
4417瀏覽量
67501 -
python
+關注
關注
57文章
4876瀏覽量
90025
原文標題:使用python對比華為設備配置是否改變(eNSP模擬器)
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
python環境變量的配置pip
Python環境變量的配置和使用是每個Python開發者都需要了解和掌握的基本技能之一。在本文中,我們將詳細介紹如何正確配置Python環境
根據這個硬件改變配置選項代碼是否有效?
我正在配置MSD_SIMPLE_DEMO項目代碼(PIC24FJ256DA210)到PIC24FJ128DA106。我正在根據這個硬件(pic24fj128da106)改變配置選項。這個代碼是
發表于 04-30 11:45
使用Python開發鴻蒙設備程序(0-初體驗)
還是屬于嵌入式開發的范疇,而在嵌入式開發中C語言又是當之無愧的首選,所以,大家也都接受了這個現實。。。。。。。上周末,有幸能和華為的大佬們進行面對面交流(其實我是去抱大腿的),我們都一致認為:如果設備開發
發表于 12-03 10:54
利用Python配置Homeassistant,讓涂鴉設備連接Homekit
。我們今天介紹如何在PC端用python配置Home Assistant 。這種方案對設備沒有特殊的要求,有個電腦就能完成搭建,極易上手,可以快速完成對Home Assistant 的配置
發表于 10-27 15:00
?2548次閱讀
如何使用Python3檢查文件是否存在
檢查文件是否存在的方法, 在Python3 文件操作中經常被用到, 因為,只有文件存在, 我們才可以對文件進行下一步處理, 那么,常用的檢查文件存在的方法有哪些呢?以下是Python3 檢查文件
發表于 10-26 17:08
?14次下載
pycharm如何配置Python解釋器
剛學Python,你肯定遇到過這個問題剛學Python時,拿到一個Python項目,想用pycharm打開運行,pycharm界面卻顯示No Python Interpreter co
如何通過Python腳本批量采集華為交換機配置
通過學習python網絡運維自動化減少重復無意義的工作量,本次實驗雖然只是一條命令,通過display current-configuration采集設備配置,但是在有大量設備需要采集
如何配置Python環境變量
配置Python環境變量是在安裝Python解釋器后的一項重要步驟,它允許您在任何位置都可以通過命令行或腳本運行Python解釋器,使Python
pycharm怎么配置python環境變量
PyCharm 是一種以 Python 為主的集成開發環境 (IDE),它提供了一系列的功能用于開發、調試、測試和部署 Python 程序。在使用 PyCharm 開發 Python 項目時,
python軟件對電腦配置要求
Python是一種流行的編程語言,它在許多不同的領域中被廣泛使用,例如網站開發、數據科學和機器學習等。對于使用Python的開發者來說,了解Python軟件的電腦配置要求是非常重要的。
python運行環境的安裝和配置
Python是一種非常流行的編程語言,廣泛應用于科學計算、Web開發、人工智能等領域。為了能夠正常運行Python程序,我們需要先安裝和配置Python運行環境。本文將為您詳盡介紹
使用Python批量連接華為網絡設備
隨著網絡規模的擴大和設備數量的增加,手動配置和管理每臺網絡設備變得越來越不現實。因此,自動化工具和腳本變得尤為重要。Python語言以其簡潔性和強大的第三方庫支持,成為了網絡自動化領域
使用Python腳本備份華為交換機的配置信息
在現代網絡管理中,備份交換機的配置信息是一項至關重要的任務。備份可以確保在交換機發生故障或配置錯誤時,能夠迅速恢復到之前的工作狀態。本文將詳細介紹如何使用Python腳本備份華為交換機
使用python對比華為設備配置是否改變
評論