网络设备配置对比

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

相关推荐

  • Spring Boot打包不同环境配置与Shell脚本部署的方法教程

    技术Spring Boot打包不同环境配置与Shell脚本部署的方法教程这篇文章主要介绍“Spring Boot打包不同环境配置与Shell脚本部署的方法教程”,在日常操作中,相信很多人在Spring Boot打包不同环

    攻略 2021年10月26日
  • 金牛座和什么星座最配,金牛座和什么星座最配呢

    技术金牛座和什么星座最配,金牛座和什么星座最配呢金牛座与其它星座的互动关系 最欣赏的星座-处女座 最信任的星座-狮子座金牛座和什么星座最配、射手座
    最佳学习对象-天蝎座
    最佳工作搭档-双子座
    最容易被影响星座-水瓶

    生活 2021年10月26日
  • web组件化

    技术web组件化 web组件化 - 微前端的改进:子应用Webpack排除React依赖包第一篇介绍了如何将React组件转换为Web Component
    第二篇介绍了子应用(Web Component

    礼包 2021年10月27日
  • css如何设置链接点击后的颜色

    技术css如何设置链接点击后的颜色这篇文章主要为大家展示了“css如何设置链接点击后的颜色”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css如何设置链接点击后的颜色”这篇文

    攻略 2021年12月10日
  • JavaScript怎样获取对象属性和方法

    技术JavaScript怎样获取对象属性和方法这篇文章主要介绍了JavaScript怎样获取对象属性和方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。j

    攻略 2021年11月14日
  • 怎样实现Mysql 备份与恢复

    技术怎样实现Mysql 备份与恢复怎样实现Mysql 备份与恢复,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。逻辑备份:1.mysqldum

    攻略 2021年11月20日