[英]Linux Expect SSH hangs
我試圖在計算機集群上安裝R,有人告訴我檢查Expect。
我正在關注有關Linux Expect Command的教程,該教程將ssh的過程自動化到節點並自動安裝開源R。
我有點卡在ssh上:( 教程在這里 )
#!/usr/bin/expect -f
if {[llength $argv] != 3} {
puts "usage: ssh.exp username server password"
exit 1
}
set username [lrange $argv 0 0]
set server [lrange $argv 1 1]
set password [lrange $argv 2 2]
set timeout 60
spawn ssh $username@$server.mycompany.com
match_max 100000
expect "*?assword:*"
send -- "$password\r"
send -- "\r"
expect eof
我可以運行代碼並登錄到遠程服務器,但是,我輸入ls,它只是掛在遠程服務器端。 然后我按Ctrl + C,然后注銷並返回到我的主機服務器。
登錄后,誰能告訴我如何繼續該過程。
更新:由於Ireeder的回答。
您只需要用interact替換Expect eof,它將控制權移交給用戶。
將interact
放在腳本的末尾,它將控制權返回給腳本調用者,並允許您與遠程shell進行交互。 因此,如下更改腳本:
#... top of script
send -- "$password\r"
send -- "\r"
interact
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.