2009-09-07 48 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