转载请注明以下内容:
来源:公众号【网络技术干货圈】
作者:圈圈
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文章
609浏览量
29640 -
路由器
+关注
关注
22文章
3890浏览量
118877 -
函数
+关注
关注
3文章
4406浏览量
66839 -
python
+关注
关注
57文章
4857浏览量
89586
原文标题:使用python对比华为设备配置是否改变(eNSP模拟器)
文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
python环境变量的配置pip
根据这个硬件改变配置选项代码是否有效?
使用Python开发鸿蒙设备程序(0-初体验)
利用Python配置Homeassistant,让涂鸦设备连接Homekit
如何使用Python3检查文件是否存在
pycharm如何配置Python解释器
如何通过Python脚本批量采集华为交换机配置
如何配置Python环境变量
pycharm怎么配置python环境变量
python软件对电脑配置要求
python运行环境的安装和配置
使用Python批量连接华为网络设备
使用Python脚本备份华为交换机的配置信息

使用python对比华为设备配置是否改变
评论