SSH上的命令没有按预期运行

我试图通过SSH发送以下命令到我所有的客户端服务器。 我的目的是将文件从主控主机复制到客户端服务器。 文件“myservers”包含我的客户端服务器的全限定主机名

for i in $(cat myservers);do echo;echo "$i";ssh -i id.sshkey root@"$i"; rsync -avzrph --progress -e "ssh -i /root/.ssh/id.key" root@MASTER_HOST:/home/ /home/;done 

但是上面的命令在我的本地机器上失败了。 它成功地SSH客户端主机,但不会运行rsync部分。 请分享你的想法。

而不是去rsync路线,我会去与SCP。 作为第一步尝试这一点

 scp [email protected]:/dir1/dir2/file.ext [email protected]:/dir2/dir2/dir2/ 

当您确认操作时,您可以使用-C添加压缩以提高性能。

当你对此感到满意时,你可以将它添加到你的for循环中。

我find了解决scheme。

 for i in $(cat myservers);do echo "";echo "$i";cat rsync.sh | ssh -i id.sshkey root@"$i";done 

其中rsync.sh包含。

 ➤ cat rsync.sh #!/bin/bash rsync -avzrph --progress -e 'ssh -o StrictHostKeyChecking=no -i /root/.ssh/id.key' root@MASTER_HOST:/home/ /home/