使用python paramiko模块将本地文件上传到远程主机的指定目录
使用python paramiko
模块将本地文件上传到远程主机的指定目录
这个代码首先定义了本地文件名和远程文件名,然后使用datetime
模块获取当前日期和时间,并使用字符串格式化功能生成了远程目录和文件名。在这个示例中,远程目录是/path/to/remote/directory/年份/月份/日期/
,文件名是小时-分钟-秒数.txt
。
接下来,定义了远程主机的参数,包括主机名、端口、用户名和密码。然后,创建了一个SSH客户端,并使用connect
方法连接到远程主机。在连接到远程主机之后,创建了一个SFTP客户端。
在上传文件之前,使用try-except
语句检查远程目录是否存在。如果目录不存在,则使用SFTP客户端的mkdir
方法创建目录。最后,使用put
方法将本地文件上传到远程主机指定的目录和文件名。最后,关闭了SFTP客户端和SSH客户端。
import os import paramiko import datetime # 定义本地文件名和远程文件名 local_filename = "1.txt" now = datetime.datetime.now() remote_directory = f"/path/to/remote/directory/{now.year}/{now.month}/{now.day}/" remote_filename = f"{now.hour}-{now.minute}-{now.second}.txt" # 定义远程主机参数 hostname = "10.1.1.1" port = 22 username = "admin" password = "password" # 创建SSH客户端 ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接远程主机 ssh.connect(hostname=hostname, port=port, username=username, password=password) # 创建SFTP客户端 sftp = ssh.open_sftp() # 创建远程目录 try: sftp.stat(remote_directory) except IOError: sftp.mkdir(remote_directory) # 上传文件 sftp.put(local_filename, remote_directory + remote_filename) # 关闭SFTP客户端和SSH客户端 sftp.close() ssh.close()
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!