Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 来自特定远程文件夹的并行scp文件_Linux_Unix_Ssh_Scp - Fatal编程技术网

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

Linux 来自特定远程文件夹的并行scp文件,linux,unix,ssh,scp,Linux,Unix,Ssh,Scp,我想将machineA中的文件压缩到我的machineB中,我就是这样做的。我正在将一堆文件从machineA的primary文件夹复制到machineB的primary文件夹和secondary文件夹machineA到machineB的secondary文件夹 trinity@machineB:~$ scp trinity@machineA:/data01/primary/* /data01/primary/ trinity@machineB:~$ scp trinity@machineA:/

我想将
machineA
中的文件压缩到我的
machineB
中,我就是这样做的。我正在将一堆文件从
machineA
primary
文件夹复制到
machineB
primary
文件夹和
secondary
文件夹
machineA
machineB
secondary
文件夹

trinity@machineB:~$ scp trinity@machineA:/data01/primary/* /data01/primary/
trinity@machineB:~$ scp trinity@machineA:/data02/secondary/* /data02/secondary/
有什么方法可以并行复制多个文件吗?一次从文件夹中取出五个文件?因此,我不想一次复制一个文件,而是想分别从主文件夹或辅助文件夹复制五个文件

基本上,我想并行地将
machineA
的主文件夹和辅助文件夹中的内容复制到
machineB
中,而不是按顺序进行。我的意思是我可以设置一些限制,比如一次复制5个文件

我也有GNU并行安装在我的盒子上,如果我可以使用它。我在
machineB
上按原样尝试了下面的命令,但它不起作用,并且出现了错误。我原以为它应该一次并行复制5个文件,直到从该文件夹复制所有文件

ssh machineA 'parallel -j 5 scp {} machineB:/data01/primary/ ::: /data01/primary/*'
下面是我看到的错误:

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
lost connection
我可以在machineB和machineA之间进行ssh,没有任何问题。我的并行语法有问题吗?我可以从远程文件夹中并行复制五个文件,直到所有文件都从远程文件夹中复制出来为止,最好的方法是什么?我所有的文件名都以
file\u somenumber.dat开始运行:

ssh machineA 'parallel --dry-run -j 5 scp {} machineB:/data01/primary/ ::: /data01/primary/*'
它将打印一组scp行

选择其中一个并执行以下操作:

ssh machineA 'scp ...'

您必须输入密码吗?

您正在machineA上运行scp。确保可以从machineA到machineB使用ssh。我是从
machineB
运行该命令的。你是说我应该离开machineA?是的,我可以用ssh从machineA连接到machineB。Stack Overflow是一个解决编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。还有,让我确认一件事。。我应该从
machineB
machineA
运行上述命令吗?到目前为止,我正在从
machineB
运行。是的,我必须输入密码才能工作。我能不能只输入一次密码,然后就可以完成所有的迭代?请查看
ssh-agent
ssh-copy-id
、以及
sshpass
,了解解决方法。您需要该命令才能工作,而无需输入GNU并行工作的密码。