我需要編寫一個使用ssh連接到「first_machine」並從這裏運行rsync
到另一臺機器[email protected]
的bash命令行。來自Ruby的一個命令行中的ssh和rsync
這是我的代碼:
first_machine = [email protected]
cmd="ssh #{first_machine} \"rsync -e\"ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null\" --archive -H /home/user/aaaaa [email protected]:/home/remoteuser/\" "
exit_status = system("#{cmd}")
我測試的ssh命令,也是rsync
分開。它們工作得很好,所以我可以從那裏我運行Ruby腳本和機器的ssh做:
rsync -e"ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --archive -H /home/user/aaaaa [email protected]:/home/remoteuser/
在#{first_machine}
推出的時候效果很好 - >文件夾複製。
相反,當我通過Ruby腳本運行我的代碼我收到錯誤:
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9]
如果我單獨運行的命令不會發生此錯誤。
您的第一行無效。你的'「#{cmd}」'是多餘的。 – sawa
爲什麼是多餘的?我在另一臺機器上運行ruby腳本,然後「first_machine」 – user3472065
因此,首先我需要連接到first_machine,然後執行rsync – user3472065