来自特定文件夹的并行 scp 文件

dav*_*vid 5 linux bash scp rsync gnu-parallel

我想将 scp 文件从machineA我的文件中提取出来machineB,这就是我的做法。我被一个从复制一堆文件一个primary文件夹machineAprimary文件夹中machineB,并secondarymachineAsecondary的文件夹machineB

trinity@machineB:~$ scp trinity@machineA:/data01/primary/* /data01/primary/
trinity@machineB:~$ scp trinity@machineA:/data02/secondary/* /data02/secondary/
Run Code Online (Sandbox Code Playgroud)

有什么方法可以并行复制多个文件?喜欢一个文件夹中的五个文件吗?所以不是一次复制一个文件,我想分别从主文件夹或辅助文件夹中复制五个文件?

基本上我想将主要和次要文件夹中的任何内容复制machineAmachineB并行中。

如果可以使用,我的机器上也安装了 GNU Parallel。我试过下面的命令,但它不起作用。我期望它一次并行复制 5 个文件,直到从该文件夹复制所有内容。

parallel -j 5 scp trinity@machineA:/data01/primary/* /data01/primary/
Run Code Online (Sandbox Code Playgroud)

我的并行语法有什么问题吗?我可以从远程文件夹并行复制五个文件直到从中复制所有文件的最佳方法是什么?

Jak*_*uje 2

为什么你认为并行连接会使速度更快?SCP 是非常简单的工具,可以传输少量小文件,对吞吐量和性能没有任何影响。从更多并行进程运行它可能会稍微快一点,但效果并不显着。您可以用另一种方式做的是:

  • 用于sftp获得更好的吞吐量和更聪明的复制(应该足够了)例如使用-r
  • 用于ControlMaster消除并行 TCP 连接的开销
  • 使用正确的参数parallel

我将从以下开始sftp

sftp -r trinity@machineA:/data01/primary/ /data01/primary/
Run Code Online (Sandbox Code Playgroud)