网络设备配置对比

技术网络设备配置对比 网络设备配置对比#!/usr/bin
# _*_ coding: UTF-8 _*_
# Copyright (c) 2021 GengYu.All rights reserved

网络设备配置对比

#!/usr/bin

# _*_ coding: UTF-8 _*_

#版权所有2021年耿宇。版权所有

# @耿宇创作

# @创建时间:2021/12/12

# @文件名:差异

# 打包命令pyinstaller -F包\diff

'''

'''

__作者__='管理员'

导入帕拉米科

导入时间

导入re、os、sys

导入difflib

导入文档测试

# 设备信息

ip='192.168.56.177 '

用户名='python '

密码='华为@123 '

# 定义函数获取当前配置

def get_config(ip ),用户名、密码):

ssh=paramiko.client.SSHClient()

嘘。set _ missing _ host _ key _ policy(paramiko。客户。autoaddpolicy())

ssh.connect(主机名=ip,端口=22,用户名=用户名,密码=密码)

打印(ip "登录成功")

cli=ssh.invoke_shell()

cli.send('N\n ')

时间。睡眠(0.5)

cli.send('屏幕长度0临时\ n’)

时间。睡眠(0.5)

cli.send('显示Cu \ n’)

睡眠时间(2)

dis_cu=cli.recv(999999).解码()

ssh.close()

返回dis_cu

#定义函数ssh_config,将脚本写入设备

def ssh_config(文件、ip、用户名、密码):

ssh=paramiko.client.SSHClient()

嘘。set _ missing _ host _ key _ policy(paramiko。客户。autoaddpolicy())

ssh.connect(主机名=ip,端口=22,用户名=用户名,密码=密码)

打印(IP“ssh配置登录成功")

cli=ssh.invoke_shell()

cli.send('N\n ')

时间。睡眠(0.5)

cli.send('屏幕长度0临时\ n’)

时间。睡眠(0.5)

f=打开(文件,“r”)

config _ list=f.readlines()

对于config_list:中的行

cli.send(线路)

时间。睡眠(0.5)

dis_this=cli.recv(999999).解码()

#打印(dis_this)

ssh.close()

# 调用获取配置赋值给输出

输出=get_config(ip ),用户名、密码)

#数据处理,使用正则表达式仅获取配置信息

配置=re。find all(r '(HUAWEIdisplay Cu[\ D \ D]HUAWEI $)',输出)

# 保存配置到本地文件文件一

base_path=os.getcwd()

使用打开(base_path r'\file1 ',' w ')作为f:

f.writelines(配置[0])

# 调用ssh_config,将netconf.txt配置写入设备

ssh_config('netconf.txt ',ip,用户名,密码)

# 再次读取配置,保存到本地为文件2

输出=get_config(ip ),用户名、密码)

配置=re。find all(r '(HUAWEIdisplay Cu[\ D \ D]HUAWEI $)',输出)

使用打开(base_path r'\file2 ',' w ')作为f:

f.writelines(配置[0])

# 配置对比

d=difflib .HtmlDiff()

#定义函数读取文件

def read_file(文件名):

尝试:

以f:打开(文件名为“r”)

返回f.readlines()

除了IOError:

打印(%s未找到该文件% filename)

系统出口(1)

# 定义函数比较文件,做配置对比,并保存文件为result.html

def compare_files(file1,file2,out_file):

file1_content=read_file(file1)

文件2 _内容=read_file(文件2)

d=difflib .HtmlDiff()

结果=d.make_file(file1_content,file2_content)

用打开(base_path r'\result.html ',' w ')作为f:

f.writelines(结果)

打印()

# 调用比较文件

compare _ files(base _ path r ' \ file 1 ',base_path r'\file2 ',base_path r'\result.html ')

# if __name__=='__main__':

# doctest.testmod()

#netconf.txt

[计]系统复制命令(系统的简写)

美国汽车协会

本地用户netconf密码不可逆-密码华为@123

本地用户netconf服务类型嘘

本地用户netconf级

q

嘘用户netconf身份验证类型的密码

嘘用户netconf服务类型snet config

snet config服务器启用

netconf

协议入站嘘端口830

犯罪

放弃

交换机配置:

int g1/0/0

un sh

int vlani 1

互联网协议(Internet Protocol的缩写)地址192.168.56.177

q

stel s e

用户一.四

授权美国汽车协会

嘘中的赞成

u p l 3

嘘用户大蟒

嘘用户大蟒身份验证密码

嘘用户python ser stel

美国汽车协会

本地用户大蟒密码不可逆-密码华为@123

本地用户大蟒服务类型嘘

本地用户大蟒用户组管理-ug

犯罪

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/147928.html

(0)

相关推荐

  • 大数据治理中如何搭建大数据探索平台

    技术大数据治理中如何搭建大数据探索平台这篇文章给大家介绍大数据治理中如何搭建大数据探索平台,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在数据治理中,数据探索服务的价值在初期往往是被忽视的,但是随着

    攻略 2021年12月10日
  • web前端面试中的常见的算法问题有哪些

    技术web前端面试中的常见的算法问题有哪些这篇文章主要介绍“web前端面试中的常见的算法问题有哪些”,在日常操作中,相信很多人在web前端面试中的常见的算法问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操

    攻略 2021年11月15日
  • JAVA中使用SQL语句查询 EXCEL文件数据

    技术JAVA中使用SQL语句查询 EXCEL文件数据这篇文章将为大家详细讲解有关JAVA中使用SQL语句查询 EXCEL文件数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了

    攻略 2021年12月2日
  • mysql百万级数据统计(mysql百万级数据分组)

    技术Mysql百万级数据迁移的示例分析这篇文章将为大家详细讲解有关Mysql百万级数据迁移的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    攻略 2021年12月20日
  • 用图形画一幅画,用一张白纸怎么样绘画出一张图

    技术用图形画一幅画,用一张白纸怎么样绘画出一张图“绘见70年用图形画一幅画,画出新中国”一个才华横溢有望成为艺术大家的美术老师?,为大家呈现以绘画的方式表达对祖国的热爱。一张白纸经过我们的图图画画,使空白化作神奇。新手绘

    生活 2021年10月24日
  • oracle中expdp和impdp如何导出导入表空间

    技术oracle中expdp和impdp如何导出导入表空间小编给大家分享一下oracle中expdp和impdp如何导出导入表空间,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有

    攻略 2021年11月11日