0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

网络技术干货圈 来源:网络技术干货圈 2024-08-14 17:52 次阅读

转载请注明以下内容:

来源:公众号【网络技术干货圈】

作者:圈圈

ID:wljsghq

实验拓扑:

ab0fd84f4376bbe3436f12d5ac27f2b2.png

将路由器桥接到与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')

查看结果:

497ffa16586c108cb3a211227ce704bc.png

在程序运行的时候,我们将配置做一定的改变,可以看到MD5值发生了改变,并且有对应的提示。在程序运行的时候,我们将配置做一定的改变,可以看到MD5值发生了改变,并且有对应的提示。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux系统
    +关注

    关注

    4

    文章

    593

    浏览量

    27396
  • 路由器
    +关注

    关注

    22

    文章

    3729

    浏览量

    113747
  • 函数
    +关注

    关注

    3

    文章

    4329

    浏览量

    62588
  • python
    +关注

    关注

    56

    文章

    4795

    浏览量

    84661

原文标题:使用python对比华为设备配置是否改变(eNSP模拟器)

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    python环境变量的配置pip

    Python环境变量的配置和使用是每个Python开发者都需要了解和掌握的基本技能之一。在本文中,我们将详细介绍如何正确配置Python环境
    的头像 发表于 12-15 15:41 2432次阅读

    根据这个硬件改变配置选项代码是否有效?

    我正在配置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 2022次阅读

    如何使用Python3检查文件是否存在

    检查文件是否存在的方法, 在Python3 文件操作中经常被用到, 因为,只有文件存在, 我们才可以对文件进行下一步处理, 那么,常用的检查文件存在的方法有哪些呢?以下是Python3 检查文件
    发表于 10-26 17:08 14次下载
    如何使用<b class='flag-5'>Python</b>3检查文件<b class='flag-5'>是否</b>存在

    华为p50pro参数配置和p40pro对比哪款更好

    华为p50pro参数配置和p40pro对比哪款更好更值得入手?
    的头像 发表于 05-19 11:47 2.1w次阅读

    pycharm如何配置Python解释器

    刚学Python,你肯定遇到过这个问题刚学Python时,拿到一个Python项目,想用pycharm打开运行,pycharm界面却显示No Python Interpreter co
    的头像 发表于 10-14 15:48 1.3w次阅读
    pycharm如何<b class='flag-5'>配置</b><b class='flag-5'>Python</b>解释器

    如何通过Python脚本批量采集华为交换机配置

    通过学习python网络运维自动化减少重复无意义的工作量,本次实验虽然只是一条命令,通过display current-configuration采集设备配置,但是在有大量设备需要采集
    的头像 发表于 01-09 10:32 5028次阅读

    如何配置Python环境变量

    配置Python环境变量是在安装Python解释器后的一项重要步骤,它允许您在任何位置都可以通过命令行或脚本运行Python解释器,使Python
    的头像 发表于 04-14 12:16 2w次阅读

    pycharm怎么配置python环境变量

    PyCharm 是一种以 Python 为主的集成开发环境 (IDE),它提供了一系列的功能用于开发、调试、测试和部署 Python 程序。在使用 PyCharm 开发 Python 项目时,
    的头像 发表于 11-29 14:56 2947次阅读

    python软件对电脑配置要求

    Python是一种流行的编程语言,它在许多不同的领域中被广泛使用,例如网站开发、数据科学和机器学习等。对于使用Python的开发者来说,了解Python软件的电脑配置要求是非常重要的。
    的头像 发表于 11-29 14:58 1w次阅读

    python运行环境的安装和配置

    Python是一种非常流行的编程语言,广泛应用于科学计算、Web开发、人工智能等领域。为了能够正常运行Python程序,我们需要先安装和配置Python运行环境。本文将为您详尽介绍
    的头像 发表于 11-29 16:17 1162次阅读

    使用python对比华为设备配置是否改变(eNSP模拟器)

    将路由器桥接到与Linux系统同一网段,保证可以Linux系统和路由器能够通信。
    的头像 发表于 01-17 09:14 635次阅读
    使用<b class='flag-5'>python</b><b class='flag-5'>对比</b><b class='flag-5'>华为</b><b class='flag-5'>设备</b><b class='flag-5'>配置</b><b class='flag-5'>是否</b><b class='flag-5'>改变</b>(eNSP模拟器)

    使用Python批量连接华为网络设备

    随着网络规模的扩大和设备数量的增加,手动配置和管理每台网络设备变得越来越不现实。因此,自动化工具和脚本变得尤为重要。Python语言以其简洁性和强大的第三方库支持,成为了网络自动化领域
    的头像 发表于 08-12 17:48 462次阅读

    使用Python脚本备份华为交换机的配置信息

    在现代网络管理中,备份交换机的配置信息是一项至关重要的任务。备份可以确保在交换机发生故障或配置错误时,能够迅速恢复到之前的工作状态。本文将详细介绍如何使用Python脚本备份华为交换机
    的头像 发表于 08-12 17:50 567次阅读
    使用<b class='flag-5'>Python</b>脚本备份<b class='flag-5'>华为</b>交换机的<b class='flag-5'>配置</b>信息