簡體   English   中英

Linux Expect SSH掛起

[英]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

參見http://wiki.tcl.tk/3914

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM