繁体   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