如何使用 lftp 运行并发(并行)下载?

如何使用 lftp 运行并发(并行)下载?

lftp据称支持使用以下方法同时下载多个文件get -P

来自新闻文件:

Version 4.8.0 - 2017-07-10
...
* get/mget/put/mput: add -P option for parallel transfers and long options.

从手册页中:

get [-E] [-a] [-c] [-e] [-P N] [-O base] rfile [-o lfile] ...

Retrieve the remote file rfile [...]
      ...
      -P N        download N files in parallel

这似乎对我不起作用。以下是使用lftp版本进行的 SFTP 连接交互式会话的摘录4.9.2

# testing -P 3 with three files - sees "3" as a file name
lftp [email protected]:/basedir/subdir> get -P 3 f20230719.zip f20230720.zip f20230721.zip
get: Access failed: Cannot find message [/basedir/subdir/3]
45785 bytes transferred in 7 seconds (6.9 KiB/s)
Transfer of 1 of 4 files failed

# testing -P without argument - silently ignored
lftp [email protected]:/basedir/subdir> get -P big20230708.zip big20230715.zip
`big20230715.zip' at 4390912 (4%) 927.4K/s eta:94s [Receiving data]
Interrupt

在线helpget也不了解-P(尽管同一版本的手册页知道 ):

lftp [email protected]:/basedir/subdir> help get
Usage: get [OPTS] <rfile> [-o <lfile>]
Retrieve remote file <rfile> and store it to local file <lfile>.
 -o <lfile> specifies local file name (default - basename of rfile)
 -c  continue, resume transfer
 -E  delete remote files after successful transfer
 -a  use ascii mode (binary is the default)
 -O <base> specifies base directory or URL where files should be placed

有人成功让它工作了吗?

答案1

这似乎是文档/UI 问题。get -P不接受任何n值,但也不会被忽略。重新运行第二次尝试显示这两个文件实际上是同时下载的

除了手册页和在线帮助中的错误信息外,用户界面也相当具有误导性:每次只能看到一个下载。显示的下载速度和预计到达时间仅适用于该文件,一段时间后显示会切换到另一个并发下载。

如果两个文件的大小相似,它们的速度和预计到达时间也会相似。在我上面的第二个测试中,文件名也只相差一位数字,因此很难看出发生了什么。

与 相比get -Pmget -P坚持在后面使用一个数字-P作为连接限制。目前尚不清楚get将使用多少个并发连接;可能是在 中配置的值net:connection-limit(默认为无限制)。

我要提交一个关于文档的问题。至少它在某种程度上是有用的。

相关内容