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

相关推荐
巴里巴气2 小时前
selenium基础知识 和 模拟登录selenium版本
爬虫·python·selenium·爬虫模拟登录
19892 小时前
【零基础学AI】第26讲:循环神经网络(RNN)与LSTM - 文本生成
人工智能·python·rnn·神经网络·机器学习·tensorflow·lstm
JavaEdge在掘金2 小时前
Redis 数据倾斜?别慌!从成因到解决方案,一文帮你搞定
python
ansurfen2 小时前
我的第一个AI项目:从零搭建RAG知识库的踩坑之旅
python·llm
前端付豪2 小时前
20、用 Python + API 打造终端天气预报工具(支持城市查询、天气图标、美化输出🧊
后端·python
前端付豪2 小时前
19、用 Python + OpenAI 构建一个命令行 AI 问答助手
后端·python
amazinging3 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十三天
python·学习
wgyang20164 小时前
我的第一个LangFlow工作流——复读机
python
Zhen (Evan) Wang4 小时前
(豆包)xgb.XGBRegressor 如何进行参数调优
开发语言·python
我爱一条柴ya4 小时前
【AI大模型】线性回归:经典算法的深度解析与实战指南
人工智能·python·算法·ai·ai编程