NetOps-Python实现网络设备SFTP配置

一、网络设备文件管理

1、基本概念

①配置文件

网络设备配置文件是命令的集合。

②作用

  1. 用户将当前配置保存到配置文件中,以便设备重启后,这些配置能够继续生效。
  2. 通过配置文件,用户可以非常方便地查阅配置信息
  3. 将配置文件下载到本地设备,以防设备配置文件故障来恢复配置
  4. 将配置文件上传到别地设备,来实现设备地批量配置

2、格式及规则

配置文件为文本文件,其规则如下:

  1. 以命令格式保存。
  2. 为了节省空间,只保存非缺省地参数。
  3. 以命令视图为基本框架,同一命令视图地命令组织在一起,形成一节,节与节之间通常用空行或注释隔开(#开始的为注释行
  4. 配置文件必须以“.cfg”或者“.zip”作为扩展名,而且必须存放在存储设备的根目录下。
  5. .cfg”为纯文本格式,可直接查看其内容。指定为配置文件后,启动时系统对立面的命令逐条进行恢复。
  6. “.zip”是“.cfg”的压缩格式,占用空间较小。指定为配置文件后,启动时先解压成“.cfg”格式,然后逐条恢复。
  7. 配置文件中,命令表达式必须是全写,请勿使用缩写
  8. 配置文件中,每行命令使用“\r\n”换行,禁止使用其他形式不可见字符换行。
  9. 配置文件传输(上传或下载)时,考虑安全性推荐使用SFTP模式
  10. 使用display startup命令可以查看到设备本次及下次启动的配置文件。
  11. 使用display saved-configuration命令可以查看设备下次启动时的配置文件信息。

3、配置文件查询

可以在cli通过执行compara configuration命令来比较当前的配置(包括离线配置)与下次启动的配置文件或指定的配置文件的内容是否一致。

<xxx>compare configuration 
Info: The system is now comparing the configuration, please wait......
Warning: The current configuration is not the same as the next startup configuration file. There may be several differences, and the following are some configurations beginning from the first:====== Current configuration line 44 ======local-user python password irreversible-cipher $1a$QB'&']X>IF$`e)fHa&sVVc}YwT"tyT6K|C{NNpdZ.PI[kAs4jW5$local-user python privilege level 15====== Configuration file line 45 ======
interface Vlanif1
#
interface Vlanif99ip address 192.168.200.1 255.255.255.0
#
interface GigabitEthernet0/0/1port link-type access<xxx>compare configuration ?INTEGER<0-65535>  The line number of current-configuration to begin comparingSTRING<5-48>      Specify configuration file to be compared<cr>              

二、Python配置SFTP

1、代码执行输出截图

2、代码执行后输出代码 

192.168.200.1login successfullyInfo: The max number of VTY users is 10, and the numberof current VTY users on line is 1.The current login time is 2024-03-06 15:52:34+08:00.<xxx>screen-length 0 temporaryInfo: The configuration takes effect on the current user terminal interface only.<xxx>sysEnter system view, return user view with Ctrl+Z.[xxx]aaa[xxx-aaa]local-user python password irreversible-cipher python@networkInfo: After changing the rights (including the password, access type, FTP directory, HTTP directory, and level) of a local user, the rights of users already online do not change. The change takes effect to users who go online after the change.[xxx-aaa]local-user python privilege level 15Warning: This operation may affect online users, are you sure to change the user privilege level ?[Y/N]y[xxx-aaa]q[xxx]sftp server enableInfo: The SFTP server is already started.[xxx]undo ftp serverInfo: The FTP server is already disabled.[xxx]
[Finished in 18.1s]

3、正式Python开通SFTP脚本

import paramiko
import time
# 交换机信息
ip='192.168.200.1'
username='admin'
password='admin@123'
#ssh登录
ssh=paramiko.client.SSHClient()
ssh.set_missing_host_key_policy(paramiko.client.AutoAddPolicy())
ssh.connect(hostname=ip,port=22,username=username,password=password)
print(ip+'login successfully')
# 打开一个channel,输入配置
cli=ssh.invoke_shell()
#cli.send('N\n')
time.sleep(1)
cli.send('screen-length 0 temporary\n')
time.sleep(1)
#进入系统视图
cli.send('sys\n')
time.sleep(1)
#创建用户python
cli.send('aaa\n')
cli.send('local-user python password irreversible-cipher python@network\n')
cli.send('local-user python privilege level 15\n')
cli.send('local-user python service-type ssh\n')
cli.send('q\n')
time.sleep(1)
#开启sftp server
cli.send('sftp server enable\n')
cli.send('undo ftp server\n')
time.sleep(0.5)
#开启用户python的sftp服务及路径
cli.send('ssh user python\n')
cli.send('ssh user python authentication-type all\n')
cli.send('ssh user python service-type sftp\n')
cli.send('ssh user python sftp-directory flash:/\n')
cli.send('save\n')
cli.send('y\n')
#查看脚本交互过程
dis_this=cli.recv(9999999).decode()
print(dis_this)
time.sleep(10)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

latex使用\rm将部分公式或者部分单词设置为正体

在LaTeX中&#xff0c;\rm 是用于设置文字为 “Roman” 字体的命令。这里的 “Roman” 字体通常指的是默认的文本字体&#xff0c;也就是没有特意设置为斜体或粗体的普通字体。然而&#xff0c;\rm 并不总是表示特定的字体样式&#xff0c;而是依赖于当前文档或环境的设置。 在…

[项目设计] 从零实现的高并发内存池(四)

&#x1f308; 博客个人主页&#xff1a;Chris在Coding &#x1f3a5; 本文所属专栏&#xff1a;[高并发内存池] ❤️ 前置学习专栏&#xff1a;[Linux学习] ⏰ 我们仍在旅途 ​ 目录 6.内存回收 6.1 ThreadCache回收内存 6.2 CentralCache回收内存 Rele…

事务(transaction)

事务&#xff0c;什么是事务&#xff0c;事务就是由单独单元的一个或多个sql语句组成&#xff0c;在这个单元中&#xff0c;每个sql语句都是相互依赖的。而整个单独单元是作为一个不可分割的整体存在&#xff0c;类似于物理当中的原子&#xff08;一种不可分割的最小单位&#…

探索神经网络在商品销售和图像识别中的应用

目录 前言人工神经网络简介1.1 人工神经网络与深度学习简介1.2 生物神经元结构与神经元机器模型1.3 神经网络的数据量与性能关系 2 需求预测2.1 需求预测的背景2.2 商品销售神经元机器模型2.3 多层神经网络结构的优势 3 图像识别3.1 图像识别神经网络技术3.2 实际应用场景 结语…

【Docker】提交Docker镜像改变(自定义Redis镜像)

查看某个容器发生改变(操作日志) docker diff redis A: 添加文件或目录(ADD)D:文件或者目录删除(DELETE)C:文件或者目录更改(CHANGE) 对更改的容器进行保存 我们平时使用镜像&#xff0c;会做一些自定义&#xff0c;比如配置文件的修改&#xff0c;数据的增删改等等有很多&…

android应用开发基础大纲,【绝对干货】

背景 首先我是个菜鸡&#xff0c;工资也低的一笔。 刚毕业时候在一家国企上班干 app 开发&#xff0c;干了快两年的时候&#xff0c;跳槽到了一家伪大厂干安全。投了不少简历都没有回音&#xff0c;只有这加伪大厂要我就来了。当时说好了会接触一些底层的东西&#xff0c;然而…

打印螺旋矩阵

打印螺旋矩阵 题目 如&#xff1a;输入 n 5&#xff1b; 输出&#xff1a; 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9解题 这种规律打印题我个人感觉是真的不好写&#xff0c;一看答案感觉也就那回事&#xff0c;真自己琢磨&#xff0c;半…

Draft-P802.11be-D3.2协议学习__$Annex-Z-HE-SIG-B-and-EHT-SIG-content-examples

Draft-P802.11be-D3.2协议学习__$Annex-Z-HE-SIG-B-and-EHT-SIG-content-examples Z.1 GeneralZ.2 HE-SIG-B example 1Z.3 HE-SIG-B example 2Z.4 HE-SIG-B example 3Z.5 HE-SIG-B example 4Z.6 EHT-SIG example 1&#xff08;EHT OFDMA 80MHz&#xff09;Z.7 EHT-SIG example …

C++写食堂菜品管理系统

说明:本博文来自CSDN-问答板块,题主提问。 需要:学校拟开发一套食堂菜品管理系统,以便对菜品和同学们的评价进行管理,其中包含如下信息: 商户:商户名称、柜面位置、电话…… 菜品:菜品编号、菜品名称、价格、所属商户…… 学生:注册账号、昵称、电话…… 食堂里的商户…

YOLOv8改进 | 独家创新篇 | 给YOLOv8增加辅助可逆分支结构(PGI,1:1改进)(全网独家创新,附视频讲解)

一、本文介绍 本文给大家带来的是结合最新SOTA模型YOLOv9提出的辅助可逆分支结构(也就是增加辅助训练分支,PGI),该结构改动内容非常大,首先需要修改我们的yaml文件,之后需要修改检测头因为辅助可逆分支需要使用YOLOv9的DualDDetect检测头,之后我们还需要修改损失函数的…

观其大略之HybridCLR学习笔记

问题背景 1 现有热更方案的开发效率、性能没有到达极限&#xff0c;还有提升的空间 2 ios多平台政策导致热更新受限问题&#xff0c;ios禁止jit。根据我查找的资料&#xff0c;ios的代码段启动的时候就确定了&#xff0c;不能增加新的代码段。IOS封了内存&#xff08;或者堆&…

ChatGPT使用的SSE协议接口怎么做测试

SSE是server-sent events协议简称,SSE协议主要是依托于HTTP链接用来从服务端将消息、信息、事件推动给客户端的协议。 SSE简介 SSE最近突然的被很多人关注还有一个主要原因就是ChatGPT等大模型的聊天类系统就采用了SSE协议。在使用ChatGPT的时候,输入Prompt后的反馈是逐渐的…

vite 自动导入组件样式插件及其原理(vite-plugin-style-import)

Vite 是一个快速的现代化前端构建工具。它在开发过程中使用了 ES 模块的原生导入方式&#xff0c;可以实现快速的冷启动和热模块替换。为了支持自动导入组件样式&#xff0c;Vite 提供了一个插件叫做 vite-plugin-style-import。 vite-plugin-style-import 插件是一个 Vite 的…

JS 实现AES方式加密数据实现示例

简介&#xff1a;全称高级加密标准&#xff08;英文名称&#xff1a;Advanced Encryption Standard&#xff09;&#xff0c;在密码学中又称 Rijndael 加密法&#xff0c;由美国国家标准与技术研究院 &#xff08;NIST&#xff09;于 2001 年发布&#xff0c;并在 2002 年成为有…

数据库搭建11.2

数据库之搭建 1、rpm -qa|grep 服务名称 案例&#xff1a;rpm -qa|grep mysql 2、将所有msyql的包删除干净 删除方法&#xff1a; &#xff08;1&#xff09;yum remove mysql * 删除linux中的数据库 &#xff08;2&#xff09;yum erase 包名 &#xff0…

Oracle 提示(hint)方法:use_nl

select /* index(e) index(d) use_nl(e d) */ * from emp e inner join dept d on e.deptnod.deptno where e.ename :b1 or d.dname :b2; USE_NL 是一个提示&#xff08;hint&#xff09;&#xff0c;用于指示查询优化器使用"NESTED LOOPS"连接方式。该提示告诉…

Xilinx 7系列 FPGA硬件知识系列(一)——FPGA选型参考

目录 1.1 Xilinx-7系列产品的工艺级别 ​编辑1.2 Xilinx-7系列产品的特点 1.2.1 Spartan-7系列 1.2.2 Artix-7系列 1.2.3 Kintex-7系列 1.2.4 Virtex-7系列 1.3 Xilinx-7系列FPGA对比 1.3.1 DSP资源柱状图 ​1.3.2 Block RAM资源柱状图 ​1.3.3 高速串行收…

结构体的基本使用

在C语言中&#xff0c;结构体&#xff08;Struct&#xff09;是一种自定义的数据类型&#xff0c;它允许你将多个不同类型的变量组合成一个单一的类型。结构体在组织和处理具有实体属性的数据时非常有用&#xff0c;如学生、汽车、坐标点等。它们是数据封装的基础。 定义结构体…

实验笔记之——Gaussian Splatting SLAM配置与测试

之前博客对基于3DGS的SLAM进行了调研 学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研_3d gaussian splatting slam-CSDN博客文章浏览阅读3.2k次&#xff0c;点赞40次&#xff0c;收藏58次。论文主页3D Gaussian Splatting是最近NeRF方面的突破性工作&a…

C语言数组全面解析:从初学到精通

数组 1. 前言2. 一维数组的创建和初始化3. 一维数组的使用4. 一维数组在内存中的存储5. 二维数组的创建和初始化6. 二维数组的使用7. 二维数组在内存中的存储8. 数组越界9. 数组作为函数参数10. 综合练习10.1 用函数初始化&#xff0c;逆置&#xff0c;打印整型数组10.2 交换两…