ssh到远程机器并执行并行复制操作到networking驱动器

嗨,我有一个远程机器有一个安装的networking驱动器。

我试图创build一个脚本,问我想要复制的文件夹的名称,ssh到远程机器,并让它开始复制操作。

需要并行/并发复制,因为我有时间限制。

这里是我现在在我的脚本中的“Perl”,如果它重要….

print `ssh -t -x rocup@factory "cp -rf $folder1/ /NFS; cp -rf $folder2/ /NFS; cp -rf $folder3/ /NFS"'; 

我也试过了

 print `ssh -t -x rocup@factory "cp -rf $folder1/ /NFS & cp -rf $folder2/ /NFS & cp -rf $folder3/ /NFS &"'; 

 print `ssh -t -x rocup@factory "nohup cp -rf $folder1/ /NFS;nohup cp -rf $folder2/ /NFS;nohup cp -rf $folder3/ /NFS"'; 

上面的操作一一复制,花了一个多小时才能完成,我希望能够通过并发复制来缩减一点时间

主机工厂没有私钥/公钥设置,所以我不能做

ssh -f -t -x rocup @ factory“cp -rf $ folder1 / / NFS”; 因为我需要input密码3次。

感谢您的帮助

如果您可以设置私钥/公钥从远程计算机login到本地计算机,则可以使用两个脚本执行此操作。

第一个脚本,位于您的框中,是您运行的内容,并将其作为您要复制的文件夹的input。 它做了几件事情:

  1. 用复制命令输出第二个脚本:

    cp -rf $ folder1 / / NFS&
    cp -rf $ folder2 / / NFS&
    cp -rf $ folder3 / / NFS&

  2. chmod生成的脚本755

  3. 用这个命令ssh进入远程机器:

    ssh rocup @ factory“scp yourmachine:/ path / to / generated / script ./ && ./script”

最后一条命令要求远程计算机上的用户拥有一个没有密码的私钥,以便将其返回到您的生成脚本的创build位置。 有一些方法可以使用无密码的密钥(转发代理),但是这种快速和肮脏的方式至less可以形成概念certificate,以确定并发副本是否节省了时间。