使用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()

相关推荐
Keep_Trying_Go9 分钟前
论文STEERER人群计数,车辆计数以及农作物计数算法详解(pytorch)
人工智能·pytorch·python
gzu_0111 分钟前
基于昇腾 配置pytorch环境
人工智能·pytorch·python
前进的李工1 小时前
LeetCode hot100:234 回文链表:快慢指针巧判回文链表
python·算法·leetcode·链表·快慢指针·回文链表
嫂子的姐夫1 小时前
23-MD5+DES+Webpack:考试宝
java·爬虫·python·webpack·node.js·逆向
麦麦鸡腿堡2 小时前
Java事件处理机制
java·开发语言·python
谅望者2 小时前
数据分析笔记07:Python编程语言介绍
大数据·数据库·笔记·python·数据挖掘·数据分析
Geo_V3 小时前
LangChain Memory 使用示例
人工智能·python·chatgpt·langchain·openai·大模型应用·llm 开发
夏文强3 小时前
HarmonyOS开发者认证练习题-判断题
华为·harmonyos
Kisang.3 小时前
【HarmonyOS】ArkTS的多线程并发(下)——线程间通信对象的传递
华为·typescript·harmonyos·鸿蒙
小呀小萝卜儿3 小时前
2025-11-15 学习记录--Python-LSTM模型定义(PyTorch)
python·学习·lstm