日期:2014-05-16  浏览次数:20548 次

expect使用疑问
用expext实现远程自动拷贝(不用输入密码),但是连接上一次需要32秒的时间,这也太长了吧!之前用ssh密钥对,1-2秒的时间就可以连接上。我的脚本是否有问题,大家办帮忙看看哈

test3.sh脚本如下:
C/C++ code

#!/usr/local/bin/expect 

set timeout 30
spawn scp -P 22 -r root@192.*.*.*:/1 /home/

expect "Password:" 
send "10jqka\r" 

interact 



运行的结果:
C/C++ code

[root@localhost work]# time test3.sh
spawn scp -P 22 -r root@192.*.*.*:/1 /home/
root@192.168.0.153's password:
scp: /1: No such file or directory

real    0m32.417s
user    0m0.006s
sys     0m0.002s
[root@localhost work]#



------解决方案--------------------
你的expect用的好多啊,并且登录用户使用的是root用户,这样很危险的。 scp可以使用密钥认证方式,这样也可以省去了密码输入。