使用许多目录加速lftp镜像



我正在尝试将公共FTP镜像到本地目录。当我使用wget -m {url}时,wget会很快跳过许多已经下载的文件(并且不存在更新的版本),当我使用lftp open -u user,pass {url}; mirror时,lftp会为每个文件发送MDTM,然后再决定是否下载该文件。在50000多个目录中有200多万个文件,这非常慢,此外我还收到无法获得目录的MDTM的错误消息。

在手册中,它说使用set sync-mode off将导致同时发送所有请求,这样lftp就不会等待每个响应。当我这样做时,我会收到来自服务器的错误消息,说我的IP地址连接太多。

我试着先运行wget,只下载较新的文件,但这并不能删除从FTP服务器上删除的文件,所以我用lftp删除了旧文件,但lftp仍然在每个文件上发送MDTM,这意味着这种方法没有优势。

如果我使用set ftp:use-mdtm off,那么lftp似乎只是再次下载所有文件。

有人能为具有大量目录/文件的lftp建议正确的设置吗?(特别是,让它跳过未更新的目录,就像wget似乎做的那样)?

使用set ftp:use-mdtm offmirror --ignore-time进行第一次调用,以避免重新下载所有文件。

您也可以尝试升级lftp和/或使用set ftp:use-mlsd on,在这种情况下,lftp将从MLSD命令输出中获得精确的文件修改时间(前提是服务器支持该命令)。

相关内容

  • 没有找到相关文章

最新更新