SFTP:从远程服务器递归复制/下载文件夹中的所有文件

西蒙·布朗

我有一个可以将文件从远程目录下载到本地目录的代码,但它给出以下错误。

请说明错误的含义以及解决方法。它在第二行显示问题。

我的代码

import paramiko, os
paramiko.util.log_to_file('/tmp/paramiko.log')
from stat import S_ISDIR
host = "ip"
port = 22
transport = paramiko.Transport((host, port))
password = "mypassword"
username = "username"
transport.connect(username = username, password = password)
sftp = paramiko.SFTPClient.from_transport(transport)
def sftp_walk(remotepath):
    path=remotepath
    files=[]
    folders=[]
    for f in sftp.listdir_attr(remotepath):
        if S_ISDIR(f.st_mode):
            folders.append(f.filename)
        else:
            files.append(f.filename)
    if files:
        yield path, files
    for folder in folders:
        new_path=os.path.join(remotepath,folder)
        for x in sftp_walk(new_path):
            yield x


for path,files  in sftp_walk("." or '/remotepath/'):
    for file in files:
        #sftp.get(remote, local) line for dowloading.
        sftp.get(os.path.join(os.path.join(path,file)), '/local path/')

我得到的错误:

C:\Users\Rohan\PycharmProjects\untitled1\venv\Scripts\python.exe C:/Users/Rohan/PycharmProjects/untitled1/tyu.py
Traceback (most recent call last):
  File "C:/Users/Rohan/PycharmProjects/untitled1/tyu.py", line 2, in <module>
    paramiko.util.log_to_file('/tmp/paramiko.log')
  File "C:\Users\Rohan\PycharmProjects\untitled1\venv\lib\site-packages\paramiko\util.py", line 252, in log_to_file
    f = open(filename, "a")
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/paramiko.log'

Process finished with exit code 1
乌迪特卡诺特拉
import os
import pysftp
from stat import S_IMODE, S_ISDIR, S_ISREG

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None    
sftp=pysftp.Connection('192.168.X.X', username='username',password='password',cnopts=cnopts)

def get_r_portable(sftp, remotedir, localdir, preserve_mtime=False):
    for entry in sftp.listdir(remotedir):
        remotepath = remotedir + "/" + entry
        localpath = os.path.join(localdir, entry)
        mode = sftp.stat(remotepath).st_mode
        if S_ISDIR(mode):
            try:
                os.mkdir(localpath,mode=777)
            except OSError:     
                pass
            get_r_portable(sftp, remotepath, localpath, preserve_mtime)
        elif S_ISREG(mode):
            sftp.get(remotepath, localpath, preserve_mtime=preserve_mtime)

remote_path=input("enter the remote_path: ")
local_path=input("enter the local_path: ")

get_r_portable(sftp, remote_path, local_path, preserve_mtime=False)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中从sftp服务器下载所有文件

使用 Python 中的 Paramiko 从远程命令列出的 SFTP 服务器下载文件

使用PowerShell中的WinSCP .NET程序集从FTP / SFTP服务器上的文件夹集中下载文件和电子邮件结果

直接从URL将文件下载到本地文件夹或远程服务器中的文件夹

没有root的SFTP服务器作为用户文件夹的所有者?

从服务器下载文件并将其放入/ raw文件夹

使用Python从SFTP服务器下载时不要下载空文件夹

从服务器文件夹下载文件

不使用 JSch 从 SFTP 服务器下载文件

从 SFTP 服务器下载文件到本地目录

使用JSch从SFTP服务器下载文件

使用PowerShell从SFTP服务器下载文件

无法使用python从sftp服务器下载文件

Nodejs:无法从 sftp 服务器下载文件

如何使用Dired / Trap将文件从远程服务器复制到emacs中的本地文件夹?

Servlet从远程服务器下载文件

在远程服务器上下载文件的最佳方法

MVC从远程服务器下载文件

使用ASP MVC从远程服务器下载文件

查询:rsync-将本地文件夹从远程服务器复制到远程服务器

使用WinSCP .NET程序集从FTP服务器下载除特定文件夹之外的所有文件

我可以使用fread下载文件夹中的所有文件吗?

webpack文件加载器加载文件夹中的所有文件

在IIS Web服务器中,如何在根目录中创建一个文件夹来承载下载文件?

Elixir脚本递归加载文件夹中的所有模块

导航到远程服务器的文件夹结构

重命名远程服务器上的文件夹

FTP在FileZilla中的远程服务器上移动文件/文件夹

使用SSH将文件从文件夹移动到远程服务器上的文件夹,而无需将文件下载到本地计算机