Pysftp
作为一个轻量级的直接远程操作目标机器的模块,直接上代码, 具体用法请参考相关文档(自己上网查 =。=)。
class SFTP(object):
def __init__(self):
self.port = 22
self.hostname = ''
self.user_name = ''
self.pwd = ''
self.file_path = ''
def parse_params(self, dic): self.hostname = dic.get('hostname') or '' assert self.hostname, "require set ssh hostname." self.user_name, self.new_hostname = self.hostname.split('@') # print(self.user, '@', self.hostname) # self.user_name = dic.get('user_name') or '' self.pwd = dic.get('password') or '' self.port = dic.get('port') or 22 self.file_path = dic.get('file_path') or '' assert self.file_path, "require set file_path." # assert self.user_name, "require set ssh user name." assert self.pwd, "require set ssh password." # self.new_storage_path = os.path.join(self.storage_path, gen_md5(self.hostname + '|' + self.pwd)) self.new_storage_path = os.path.join(self.storage_path, gen_md5(self.hostname + '|' + self.pwd + '|' + self.file_path + f"{str(time.time())}")) # set storage_path self.set_storage_path(self.new_storage_path) def connet(self): d_l = [] pool = Pool(5) task_lst = [] cnopts = pysftp.CnOpts(knownhosts=self.hostname) cnopts.hostkeys = None with pysftp.Connection(host=self.new_hostname, username=self.user_name, password=self.pwd, port=self.port, cnopts=cnopts) as sftp: print("Connection succesfully stablished ... ") # Switch to a remote directory # sftp.cwd('../') sftp.cwd(self.file_path) # Obtain structure of the remote directory '/' # directory_structure = sftp.listdir_attr() # print(directory_structure) # _dir = sftp.listdir('/renpeng') file_dir = sftp.listdir(self.file_path)
# ---- do something you wanna to do -----
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)