2009-09-07 107 views
3

我的期望代码执行此操作:它执行ssh连接到另一台计算机,发送密码,然后返回该计算机的主机名。我给下面
#我的代码样本!在/ usr/bin中/期望-f
集IPADDR [lrange $ ARGV 0 0]
设置的密码[lrange $ ARGV 1 1]
设定的超时-1
产卵SSH根@ $ IPADDR主机
match_max 100000
期望 “* assword:*”
送 - “$密码\ R”
预期EOF

此代码运行完美很多次,但间歇,我得到的出现以下错误
发送:
在执行
产卵ID EXP4无法打开 “发送 - ”$密码\ r“”

这究竟是为什么?问题与expect -send:spawn id exp4未打开

+4

'派:产卵ID EXP4不open'意味着'SSH根@ $ IPADDR hostname'发生故障或关闭之前'send'可以完成。 – mas 2009-09-07 08:18:19

+0

谢谢....将探索这 – Ninja 2009-09-09 08:16:58

+1

我想知道的是如何检查产卵身份证,看看它是否是开放的? – ericslaw 2011-03-15 23:29:06

回答

0

找出原因。 我已经生成了ssh密钥并将其复制到目标机器上。所以没有“密码:”提示。因此,在发送完成之前,ssh连接已关闭。

我从目标计算机中删除SSH密钥,并再次运行该脚本并没有发现问题

+2

我还有一个问题。如果你生成了ssh密钥,你应该每次都遇到这个问题,而不是间歇性的。 – 2012-12-20 01:58:12