3

我正在尝试将公共 FTP 镜像到本地目录。当我使用wget -m {url}wget 时,会很快跳过许多已经下载的文件(并且不存在新版本),当我使用lftp open -u user,pass {url}; mirrorthen时,在决定是否下载文件之前lftp发送每个文件。MDTM在 50,000+ 个目录中有 200 万+ 个文件,这非常慢,除了我收到无法获取目录 MDTM 的错误消息。

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

我尝试wget先运行以仅下载较新的文件,但这不会删除已从 FTP 服务器中删除的文件,因此我会继续lftp删除旧文件,但lftp仍会在每个文件上发送 MDTM,这意味着存在这种方法没有优势。

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

lftp有人可以建议使用大量目录/文件的正确设置(特别是,它会跳过未更新的目录,就像 wget 似乎做的那样)?

4

1 回答 1

3

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

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

于 2016-04-18T10:52:36.270 回答