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

相关推荐
fantasy_arch2 小时前
pytorch例子计算两张图相似度
人工智能·pytorch·python
WBluuue4 小时前
数学建模:智能优化算法
python·机器学习·数学建模·爬山算法·启发式算法·聚类·模拟退火算法
赴3355 小时前
矿物分类案列 (一)六种方法对数据的填充
人工智能·python·机器学习·分类·数据挖掘·sklearn·矿物分类
大模型真好玩5 小时前
一文深度解析OpenAI近期发布系列大模型:意欲一统大模型江湖?
人工智能·python·mcp
RPA+AI十二工作室5 小时前
亚马逊店铺绩效巡检_影刀RPA源码解读
chrome·python·rpa·影刀
小艳加油6 小时前
Python机器学习与深度学习;Transformer模型/注意力机制/目标检测/语义分割/图神经网络/强化学习/生成式模型/自监督学习/物理信息神经网络等
python·深度学习·机器学习·transformer
学行库小秘7 小时前
ANN神经网络回归预测模型
人工智能·python·深度学习·神经网络·算法·机器学习·回归
Yn3127 小时前
在 Python 中使用 json 模块的完整指南
开发语言·python·json
秋难降8 小时前
线段树的深度解析(最长递增子序列类解题步骤)
数据结构·python·算法
猿榜8 小时前
Python基础-控制结构
python