0
컴퓨터 클러스터에 R을 설치하려고했는데 누군가가 Expect를 체크 아웃했다.Linux 기대 SSH가 응답하지 않는다
Linux Expect Command에 대한 자습서를 따라 ssh를 노드로 자동화하고 오픈 소스 R을 자동 설치합니다.
I 종류의 SSH 부분에 붙어 오전 : (Tutorial goes here)
#!/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 [email protected]$server.mycompany.com
match_max 100000
expect "*?assword:*"
send -- "$password\r"
send -- "\r"
expect eof
나는 그러나, 나는 LS를 입력하고 그냥 원격에 달려 코드를 실행하고 원격 서버에 로그인 할 수 있습니다
서버 측. 그리고 Ctrl + C를 누르면 로그 아웃되고 내 호스트 서버로 돌아갑니다.
어느 한 방법은 로그인 후 기대에 프로세스를 계속하는 말해 줄 수업데이트 :. 때문에 Ireeder의 대답에.
expect eof를 interact로 바꾸면 컨트롤이 사용자에게 넘겨집니다.
감사에게 나를 위해 일을 많이 참조하십시오. 이 경우에 "eof가 기대하는 것"을 설명 할 수 있습니까? –
프로세스가 닫힐 때 몇 가지 추가 작업을 수행하려면'expect eof' 만 필요합니다. 'expect eof'는 스폰 된 대화 형 ssh 세션을 수동으로 종료 할 때 잘 작동하지 않습니다. 나는 완전히 확신 할 수는 없지만, 스폰 된 ssh 프로세스를 빠져 나갈 때, 예상되는 프로세스가 eof를 예상 할 때까지 "기대"에 대해 사용할 수없는 경쟁 조건이 있다고 가정하고 있습니다. – lreeder
jenkins에서 "expect eof"를 사용할 때 위에서 언급 한 문제가 발생합니다. 젠킨스에서는 작동하지 않으므로 상호 작용을 사용할 수 없습니다. 내가 취할 수있는 다른 접근법이 있습니까? –