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…

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

目录 前言人工神经网络简介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;数据的增删改等等有很多&…

打印螺旋矩阵

打印螺旋矩阵 题目 如&#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-问答板块,题主提问。 需要:学校拟开发一套食堂菜品管理系统,以便对菜品和同学们的评价进行管理,其中包含如下信息: 商户:商户名称、柜面位置、电话…… 菜品:菜品编号、菜品名称、价格、所属商户…… 学生:注册账号、昵称、电话…… 食堂里的商户…

观其大略之HybridCLR学习笔记

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

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…

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 高速串行收…

实验笔记之——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 交换两…

Java面试篇【MyCat】常见面试题(2024最新)

Mycat 1.Mycat 分库分表中间件&#xff0c;将存放在一个数据库的数据存放在不同的多个数据库中。来分散负载。 scheme 逻辑库&#xff0c;对应mysql的数据库&#xff0c;一个逻辑库定义了包含的所有table.是数据库集群对外的统一访问接口。table 逻辑表&#xff0c;和物理数…

【Java EE】文件内容的读写⸺数据流

目录 &#x1f334;数据流的概念&#x1f338;数据流分类 &#x1f333;字节流的读写&#x1f338;InputStream&#xff08;从文件中读取字节内容)&#x1f33b;示例1&#x1f33b;示例2&#x1f33b;利用 Scanner 进行字符读取 &#x1f338;OutputStream(向文件中写内容&…

00. Nginx总结-错误汇总

/www/wangmingqu/index.html" is forbidden (13: Permission denied) 错误图片 错误日志 2024/01/09 22:26:27 [error] 1737#1737: *1 "/www/wangmingqu/index.html" is forbidden (13: Permission denied), client: 192.169.1.101, server: www.wangmingqu.c…

算法:滑动窗口

文章目录 例题1&#xff1a;长度最小的子数组例题2&#xff1a;无重复字符的最长子串例题3&#xff1a;最大连续1的个数 III例题4&#xff1a;将 x 减到 0 的最小操作数例题5&#xff1a;水果成篮例题6&#xff1a;找到字符串中所有字母异位词例题7&#xff1a;串联所有单词的子…

碳视野|全国首个ESG区域行动方案通过,上海政府推进ESG有八“要”

引领绿色转型&#xff0c;共筑低碳未来&#xff01;AMT企源碳管理团队深入解读碳领域政策、概念及标准&#xff0c;分享实践经验&#xff0c;助力产业绿色发展。我们启动“碳视野、碳课堂、碳实践”三大专栏&#xff0c;紧跟碳行业政策动态&#xff0c;以“科普实践分享”为核心…

【python】六个常见爬虫案例【附源码】

大家好&#xff0c;我是博主英杰&#xff0c;整理了几个常见的爬虫案例&#xff0c;分享给大家&#xff0c;适合小白学习 一、爬取豆瓣电影排行榜Top250存储到Excel文件 近年来&#xff0c;Python在数据爬取和处理方面的应用越来越广泛。本文将介绍一个基于Python的爬虫程序&a…

STM32 GPIO的几种工作模式

介绍STM32 GPIO的几种工作模式 1、输出模式 STM32的引脚输出有两种方式&#xff1a; 1、推挽输出 2、开漏输出 1.1 推挽输出 当引脚设置为推挽输出时&#xff0c;P-MOS和N-MOS共同配合工作。 当使用HAL库 //该函数的作用就是将P-MOS导通&#xff0c;N-MOS关…