如何通过 FTP 并行上传目录?

Bob*_*Bob 9 command-line ftp file-transfer parallelism

我需要通过 FTP 上传一个带有相当复杂的树(很多子目录等)的目录。我无法压缩这个目录,因为除了 FTP 之外我没有任何访问目标的权限 - 例如没有 tar。由于这是一个很长的距离(美国 => 澳大利亚),延迟非常高。

遵循如何在 Unix 中使用 mput 将多个文件夹通过 FTP 传输到另一台服务器中的建议,我目前使用的ncftp执行与转移mput -r。不幸的是,这似乎一次传输一个文件,在通信开销上浪费了大量可用带宽。

有什么办法可以并行化这个过程,即同时从这个目录上传多个文件?当然,我可以手动拆分它并mput -r在每个块上执行,但这是一个乏味的过程。

CLI 方法是非常受欢迎的,因为客户端机器实际上是一个通过 SSH 访问的无头服务器。

Jou*_*eek 13

lftp 将使用命令执行此操作mirror -R -P 20 localpath- 位置之间的镜像同步,-R 使用远程服务器作为目标,P 一次执行 20 次并行传输。

如中所述man lftp

   mirror [OPTS] [source [target]]

   Mirror specified source directory to local target directory. If  target
   directory ends with a slash, the source base name is appended to target
   directory name. Source and/or target can be URLs pointing  to  directo?
   ries.


        -R,    --reverse                 reverse mirror (put files)
        -P,    --parallel[=N]            download N files in parallel
Run Code Online (Sandbox Code Playgroud)