實驗拓?fù)洌?/p>

將路由器橋接到與Linux系統(tǒng)同一網(wǎng)段,保證可以Linux系統(tǒng)和路由器能夠通信。
要求:
一共要制作兩個函數(shù):
第一個函數(shù)用于獲取設(shè)備配置(注意:華為設(shè)備只獲取sysname xxx到return之間的部分)。
第二個函數(shù)每五秒獲取一次設(shè)備配置,并計算配置的MD5值。如果和之前的MD5相同就打印MD5,如果不相同就打印告警并退出。
步驟:
1.在AR上配置SSH。(略)
2.創(chuàng)建dev_ssh.py文件,使用paramiko連接AR。
#導(dǎo)入paramiko模塊 importparamiko importtime #定義ssh的函數(shù),方便調(diào)用 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界面顯示的內(nèi)容 returnx #本地進(jìn)行測試 if__name__=='__main__': print(dev_ssh('192.168.0.11','prin','Huawei@123'))
3.創(chuàng)建compare_md5.py文件,獲取配置的MD5值并比較。
#引入dev_ssh.py模塊中的dev_ssh函數(shù)
fromdev_sshimportdev_ssh
#引入正則表達(dá)式的模塊
importre
#引入計算hash值的模塊
importhashlib
#引入time模塊
importtime
#定義獲取配置的函數(shù)
defdev_get_config(ip,username='admin',password='Huawei@123'):
try:
#調(diào)用dev_ssh函數(shù)得到配置信息
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值的函數(shù)
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值進(jìn)行對比
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值的同時,退出循環(huán),并且打印告警信息
else:
print(m.hexdigest())
print('MD5valuechanged!')
break
#進(jìn)行測試
if__name__=='__main__':
check_diff('192.168.0.11','prin')
查看結(jié)果:

在程序運(yùn)行的時候,我們將配置做一定的改變,可以看到MD5值發(fā)生了改變,并且有對應(yīng)的提示。
審核編輯:劉清
-
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
609瀏覽量
29621 -
路由器
+關(guān)注
關(guān)注
22文章
3887瀏覽量
118830 -
模擬器
+關(guān)注
關(guān)注
2文章
992瀏覽量
45367 -
SSH
+關(guān)注
關(guān)注
0文章
198瀏覽量
17556 -
python
+關(guān)注
關(guān)注
57文章
4856瀏覽量
89532
原文標(biāo)題:使用python對比華為設(shè)備配置是否改變(eNSP模擬器),看完就會!
文章出處:【微信號:網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號:網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
讓華為模擬器ENSP中所有的設(shè)備都能訪問外網(wǎng),這樣的實驗才真實。?#模擬器?#ensp#硬聲創(chuàng)作季
帶有Python的NeoPixel模擬器
華為最新模擬器eNSP Lite即將要發(fā)布了!
華為新版模擬器eNSP Lite安裝攻略
華為新版模擬器eNSP Lite

使用python對比華為設(shè)備配置是否改變(eNSP模擬器)
評論