使用RCP和Expect进行无密码文件传输

时间:2016-03-08 15:05:58

标签: unix expect rcp

我需要将文件从一台服务器传输到另一台服务器。我使用RCP命令执行相同的操作并且工作正常。请在下面找到代码:

rcp tst.txt usrname@hostname:/home/username/destination_folder

我尝试使用Expect命令自动执行相同操作,因此创建了下面提到的shell脚本:

#!/bin/bash
/usr/bin/expect -d<<EOD
spawn rcp tst.txt usrname@hostname:/home/username/destination_folder
expect "*userid@hostname's password:*"
send "mypassword\n"
EOD

我执行shell脚本时没有收到任何错误,但文件没有传输。有人可以帮我弄清问题是什么吗?

我通过密钥生成尝试了密码减少,但没有运气,所以我尝试了RCP方法。

先谢谢, 维杰

1 个答案:

答案 0 :(得分:0)

发送密码后,请等待rcp完成{期待eof

send "mypassword\r"
expect eof

如果没有密码,那么,在产生rcp之后,期待eof