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

时间:2017-06-02 18:16:24

标签: linux unix ssh scp

我想将machineA中的文件scp到我的machineB中,这就是我的做法。我正在从primary的{​​{1}}文件夹到machineA的{​​{1}}文件夹和primary machineB文件夹中逐个复制一堆文件到{ {1}} secondary的文件夹。

machineA

有什么方法可以并行复制多个文件?像文件夹中一次五个文件一样?因此,我不是一次复制一个文件,而是分别从主文件夹或辅助文件夹中复制五个文件?

基本上我想将secondary的主要和次要文件夹中的任何内容并行复制到machineB而不是按顺序执行。我的意思是我可以设置一些限制,例如一次复制5个文件。

如果我可以使用它,我的盒子上也安装了GNU Parallel。我在trinity@machineB:~$ scp trinity@machineA:/data01/primary/* /data01/primary/ trinity@machineB:~$ scp trinity@machineA:/data02/secondary/* /data02/secondary/ 上尝试了以下命令,但它不起作用而且它给出了错误。我希望它一次可以并行复制5个文件,直到从该文件夹中复制所有内容。

machineA

以下是我看到的错误:

machineB

我可以毫无问题地从machineB到machineA。我的并行语法有什么问题吗?从远程文件夹并行复制五个文件直到从中复制所有内容的最佳方法是什么?我的所有文件名都以machineB

开头

1 个答案:

答案 0 :(得分:1)

执行命令

ssh machineA 'parallel --dry-run -j 5 scp {} machineB:/data01/primary/ ::: /data01/primary/*'

它将打印一堆scp行。

选择其中之一并执行:

ssh machineA 'scp ...'

您需要输入密码吗?