문제

SSH를 사용하여 많은 컴퓨터에 Java를 설치하고 싶습니다.

for c in computers
do    
   scp jre--.rpm $c
   ssh $c 'sudu -s; chmod a+x jre--.rpm ; ./jre--.rpm; echo "success!"'
done

문제는 Java 설치 중에 "통지"를 읽고 "예"를 입력해야한다는 것입니다. 어떻게해야하나요? "기대"보다 쉬운 방법이 있습니까? 그리고 Bash 스크립트에 맞는 방법이 아니라면?

정말 감사합니다

도움이 되었습니까?

해결책 2

기대는 갈 길입니다 (감사합니다 http://www.dnmouse.org/java.html):

   for c in computers
   do    
       scp jre--.rpm $c
       ssh -t $c 'sudo -s; yum -y install expect; sudo chmod a+x jre--.rpm'
       ssh -t $c '/usr/bin/expect -c \
       "set timeout -1; spawn ./jre-6u13-linux-x64-rpm.bin; sleep 1; send -- q\r; sleep 1; send -- yes\r; expect eof"
       echo "success!"'
   done

다른 팁

먼저 필요한 키 스트로크를 다음과 같은 파일에 기록하십시오.

cat > keystrokes

때리다 Ctrl 키+ KeyStrokes 녹음이 완료되면. 파일 내용을 확인하십시오. 탭과 같은 일부 키는 제대로 기록되지 않을 수 있지만 여전히 텍스트 편집기로 파일을 편집 할 수 있습니다. 콘솔에서 아래로 스크롤하는 경우 (예 : 출력을 읽을 때 more) 일반적으로 우주선으로 수행 할 수 있습니다.

이미 RPM에서 수행 한 것처럼이 파일을 SCP 할 수 있습니다. 다음으로 KeyStrokes 파일의 내용을 설치 프로그램의 표준 입력으로 파이프하십시오.

cat keystrokes | ./someinstaller

편집하다: 작동하지 않아서 죄송합니다. 어쩌면 당신은 볼 수 있습니다 예상하다, 이것은 이런 종류의 것을 위해 설계된 유닉스 도구입니다. 나는 그것이 대부분 포함된다고 생각합니다 GNU/Linux 분포. 파이썬에 익숙하다면 선호 할 수 있습니다 pexpect 대신에.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top