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

相关推荐
m0_613856292 小时前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
nashane2 小时前
HarmonyOS Video组件预览图片优化实践:告别黑屏,提升视频播放体验
华为·音视频·harmonyos·harmonyos 5
我的xiaodoujiao3 小时前
API 接口自动化测试详细图文教程学习系列16--项目实战演练3
python·学习·测试工具·pytest
ID_180079054733 小时前
Python 实现亚马逊商品详情 API 数据准确性校验(极简可用 + JSON 参考)
java·python·json
时空系3 小时前
第10篇:继承扩展——面向对象编程进阶 python中文编程
开发语言·python·ai编程
CHANG_THE_WORLD4 小时前
python 批量终止进程exe
开发语言·python
liann1194 小时前
3.2_红队攻击框架--MITRE ATT&CK‌
python·网络协议·安全·网络安全·系统安全·信息与通信
云天AI实战派4 小时前
AI 智能体问题排查指南:ChatGPT、API 调用到 Agent 上线失灵的全流程修复手册
大数据·人工智能·python·chatgpt·aigc
我的xiaodoujiao5 小时前
API 接口自动化测试详细图文教程学习系列15--项目实战演练2
python·学习·测试工具·pytest
maaath6 小时前
【maaath】Flutter for OpenHarmony 实战:旅游攻略应用开发指南
flutter·华为·harmonyos