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并行工作的密码。