网络设备配置对比

技术网络设备配置对比 网络设备配置对比#!/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)

相关推荐

  • java如何集成小米推送服务

    技术java如何集成小米推送服务这期内容当中小编将会给大家带来有关java如何集成小米推送服务,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。集成小米推送服务这类推送一般官方文档都比较详

    攻略 2021年10月20日
  • 喜欢的英语单词,大家最喜欢嘚英语单词是什么啊

    技术喜欢的英语单词,大家最喜欢嘚英语单词是什么啊最喜欢的英文单词是:favouritefavourite 英[ˈfeɪvərɪt] 美[fevərɪt] adj. 特别受喜爱的; n.

    生活 2021年10月26日
  • MS 2008数据库转换成2000版本的方法是什么

    技术MS 2008数据库转换成2000版本的方法是什么MS 2008数据库转换成2000版本的方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。话

    攻略 2021年11月30日
  • orz什么意思,最近流行的ORZ是什么意思

    技术orz什么意思,最近流行的ORZ是什么意思“囧”又称“失意体前屈”,最初的使用灵感源自日本的网络象形文字(或心情图示)“orz”,2004年之后逐渐在内地orz什么意思、香港与台湾等地流行,在网络文化中,“囧”的内小

    生活 2021年10月24日
  • 让我看看英语,让我看看你的钢笔英语怎么说

    技术让我看看英语,让我看看你的钢笔英语怎么说给我看一下你的钢笔,翻译是show me your pen让我看看英语。关键词汇是动词show。 用了词组show sb sth意思是把某物展示给某人看。解释:show

    生活 2021年10月28日
  • beaglebone AI环境搭建与运行是怎样的

    技术beaglebone AI环境搭建与运行是怎样的beaglebone AI环境搭建与运行是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所

    攻略 2021年12月11日