网络设备配置对比

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

相关推荐

  • Maven安装与配置

    技术Maven安装与配置 Maven安装与配置目录Maven安装与配置1.下载Maven
    2.配置环境变量
    3.配置阿里云镜像
    4.配置本地仓库Maven安装与配置
    1.下载Maven
    maven下载地

    礼包 2021年12月5日
  • 树莓派如何安装Samba实现和Windows共享

    技术树莓派如何安装Samba实现和Windows共享这篇文章将为大家详细讲解有关树莓派如何安装Samba实现和Windows共享,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。创建Sam

    攻略 2021年11月20日
  • Java Spring框架举例分析

    技术Java Spring框架举例分析本篇内容主要讲解“Java Spring框架举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Spring框架举例分析”吧

    攻略 2021年11月24日
  • python如何爬取基金股票最新数据并用excel绘制树状图

    技术python如何爬取基金股票最新数据并用excel绘制树状图python如何爬取基金股票最新数据并用excel绘制树状图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到

    攻略 2021年10月26日
  • MySQL索引创建及使用

    技术MySQL索引创建及使用 MySQL索引创建及使用转自:https://blog.csdn.net/dengchenrong/article/details/88425762
    背景
    最近在深化学习数

    礼包 2021年10月27日
  • 如何理解aix命令中的capture和script

    技术如何理解aix命令中的capture和script今天就跟大家聊聊有关如何理解aix命令中的capture和script,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有

    攻略 2021年11月26日