使用许多目录加速 lftp 镜像
Speeding up lftp mirroring with many directories
我正在尝试将 public FTP 镜像到本地目录。当我使用 wget -m {url}
时,wget 会很快跳过许多已经下载的文件(并且不存在更新版本),当我使用 lftp open -u user,pass {url}; mirror
时,lftp
发送 MDTM
在决定是否下载文件之前检查每个文件。在 5 万多个目录中有 200 万多个文件,这非常慢,此外我还收到无法获取目录 MDTM 的错误消息。
手册中说使用 set sync-mode off
将导致一次发送所有请求,因此 lftp
不会等待每个响应。当我这样做时,我收到来自服务器的错误消息,指出来自我的 IP 地址的连接太多。
我尝试 运行 wget
首先只下载较新的文件,但这不会删除从 FTP 服务器中删除的文件,所以我跟进 lftp
删除旧文件,但是 lftp
仍然在每个文件上发送 MDTM,这意味着这种方法没有优势。
如果我使用 set ftp:use-mdtm off
,那么似乎 lftp
只是再次下载所有文件。
有人可以为 lftp
和大量 directories/files 提出正确的设置吗(具体来说,它会跳过未更新的目录,就像 wget 似乎做的那样)?
首次调用时使用 set ftp:use-mdtm off
和 mirror --ignore-time
以避免重新下载所有文件。
您也可以尝试升级 lftp and/or 使用 set ftp:use-mlsd on
,在这种情况下,lftp 将从 MLSD 命令输出中获取精确的文件修改时间 (前提是服务器支持该命令)。
我正在尝试将 public FTP 镜像到本地目录。当我使用 wget -m {url}
时,wget 会很快跳过许多已经下载的文件(并且不存在更新版本),当我使用 lftp open -u user,pass {url}; mirror
时,lftp
发送 MDTM
在决定是否下载文件之前检查每个文件。在 5 万多个目录中有 200 万多个文件,这非常慢,此外我还收到无法获取目录 MDTM 的错误消息。
手册中说使用 set sync-mode off
将导致一次发送所有请求,因此 lftp
不会等待每个响应。当我这样做时,我收到来自服务器的错误消息,指出来自我的 IP 地址的连接太多。
我尝试 运行 wget
首先只下载较新的文件,但这不会删除从 FTP 服务器中删除的文件,所以我跟进 lftp
删除旧文件,但是 lftp
仍然在每个文件上发送 MDTM,这意味着这种方法没有优势。
如果我使用 set ftp:use-mdtm off
,那么似乎 lftp
只是再次下载所有文件。
有人可以为 lftp
和大量 directories/files 提出正确的设置吗(具体来说,它会跳过未更新的目录,就像 wget 似乎做的那样)?
首次调用时使用 set ftp:use-mdtm off
和 mirror --ignore-time
以避免重新下载所有文件。
您也可以尝试升级 lftp and/or 使用 set ftp:use-mlsd on
,在这种情况下,lftp 将从 MLSD 命令输出中获取精确的文件修改时间 (前提是服务器支持该命令)。