使用python 实现华为设备的SFTP文件传输

实验目的:

公司有一台CE12800的设备,管理地址位172.16.1.2,现在需要编写自动化脚本,通过SFTP实现简单的上传下载操作。

实验拓扑:

实验步骤:

步骤1:将本地电脑和ensp的设备进行桥接,桥接配置如下图所示:

步骤2:配置交换机的IP地址。
<HUAWEI>system-view immediately

HUAWEI\]sysname CE1 \[CE1\]interface Vlanif 1 \[CE1-Vlanif1\]ip address 172.16.1.2 24 \[CE1-Vlanif1\]quit \[CE1\]interface g1/0/0 \[CE1-GE1/0/0\]undo shutdown 测试本地的cmd窗口与CE1设备的连通性。 C:\\Users\\xxx\>ping 172.16.1.2 正在 Ping 172.16.1.2 具有 32 字节的数据: 来自 172.16.1.2 的回复: 字节=32 时间=19ms TTL=255 来自 172.16.1.2 的回复: 字节=32 时间=7ms TTL=255 来自 172.16.1.2 的回复: 字节=32 时间=5ms TTL=255 来自 172.16.1.2 的回复: 字节=32 时间=7ms TTL=255 172.16.1.2 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 5ms,最长 = 19ms,平均 = 9ms 步骤3:配置CE1的SSH登陆。 1. 创建SSH登陆的账号 \[CE1\]aaa \[CE1-aaa\]local-user python password cipher Huawei@123 \[CE1-aaa\]local-user python user-group manage-ug \[CE1-aaa\]local-user python service-type ssh \[CE1-aaa\]local-user python level 3 1. 在CE1设备配置SSH用户的认证方式和服务类型。 \[CE1\]ssh user python \[CE1\]ssh user python authentication-type password \[CE1\]ssh user python service-type sftp \[CE1\]ssh user python sftp-directory cfcard: \[CE1\]ssh authentication-type default password \[CE1\]sftp server enable 步骤4:编写python代码 完整代码如下: import paramiko tran = paramiko.Transport(('172.16.1.2',22)) tran.connect(username='python',password='Huawei@123') sftp = paramiko.SFTPClient.from_transport(tran) local_path = r'F:\\test\\test.cfg' remote_path = '/vrpcfg.cfg' sftp.get(remote_path,local_path) print('get file succeed') sftp.put(local_path,'/test.cfg') print('put file succeed') tran.close() 步骤5:编译器执行 步骤6:查看执行结果: get file succeed put file succeed 在本地电脑的F:\\test查看是否有备份的test.cfg的文件 ![](https://file.jishuzhan.net/article/1728573852486733825/71a2af85455c4c7a17fa0db1baacb4bd.webp) 在CE1设备上查看是否上传了test.cfg的文件 ![](https://file.jishuzhan.net/article/1728573852486733825/ea87dcd3e73145d53798c669bbf5f6ba.webp) \dir Directory of cfcard:/ Idx Attr Size(Byte) Date Time FileName 0 dr-x - Nov 09 2023 10:03:28 $_checkpoint 1 dr-x - Nov 09 2023 09:36:26 $_install_mod 2 dr-x - Nov 09 2023 09:37:01 $_license 3 dr-x - Nov 09 2023 09:37:06 $_security_info 4 dr-x - Nov 09 2023 09:37:03 $_system 5 -rw- 0 Nov 09 2023 09:36:26 CE12800 6 -rw- 104 Nov 09 2023 09:36:26 VRPV800R011C00SPC607B607D0203_s12800.cc 7 -rw- 251 Nov 09 2023 09:36:26 device.sys 8 -rw- 1,718 Nov 09 2023 10:13:31 ***test.cfg*** 9 -rw- 1,718 Nov 09 2023 09:36:26 vrpcfg.cfg 代码解析: (1)导入库 import paramiko 导入paramiko,本章使用会使用到Transport类,SFTPClient类。 Transport类用于建立SFTP的会话通道。 SFTPClient类用于上传和下载文件。 (2)实例化会话通道,目的SSH服务器为172.16.1.1,端口号为22。 tran = paramiko.Transport(('172.16.1.2',22)) (3)建立SSH会话通道,用户名为python,密码为Huawei@123 tran.connect(username='python',password='Huawei@123') (4)从打开的会话连接创建SFTP通道,赋值给sftp sftp = paramiko.SFTPClient.from_transport(tran) (5)指定本地的路径和远端路径。 local_path = r'F:\\test\\test.cfg' remote_path = '/vrpcfg.cfg' local_path = r'F:\\test\\test.cfg' 表示本地的文件名称为test.cfg,文件路径为F:\\test remote_path = '/vrpcfg.cfg' 表示SFTP服务器上的文件路径和名称为/vrpcfg.cfg。 (6)执行下载文件操作 sftp.get(remote_path,local_path) print('get file succeed') 将SFTP服务器上的/vrpcfg.cfg下载到本地路径F:\\test上,并命名为test.cfg,下载完成后,输出get file succeed提示语句。 (7)执行下载文件操作 sftp.put(local_path,'/test.cfg') print('put file succeed') 将本地路径上的F:\\test\\test.cfg上传到SFTP服务器的根路径下。 (8)关闭会话连接 tran.close()

相关推荐
曲幽1 小时前
我用了FastApiAdmin后,连夜把踩过的坑都整理出来了
redis·python·postgresql·vue3·fastapi·web·sqlalchemy·admin·fastapiadmin
前端不太难2 小时前
从单页面到系统化:鸿蒙 App 演进路径
华为·状态模式·harmonyos
前端若水2 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
涛声依旧-底层原理研究所3 小时前
残差连接与层归一化通俗易懂的详解
人工智能·python·神经网络·transformer
小雨青年3 小时前
鸿蒙 HarmonyOS 6 | Pura X Max 鸿蒙原生适配 09:展开态列表增加字段但不变复杂
华为·harmonyos
csdn_aspnet3 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
fantasy_arch4 小时前
pytorch人脸匹配模型
人工智能·pytorch·python
熊猫_豆豆4 小时前
广义相对论水星近日点进动完整详细数学推导
python·天体·广义相对论
web3.08889994 小时前
1688 图搜接口(item_search_img / 拍立淘) 接入方法
开发语言·python
AI算法沐枫4 小时前
深度学习python代码处理科研测序数据
数据结构·人工智能·python·深度学习·决策树·机器学习·线性回归