본문 바로가기

Study/Linux

expect 스크립트를 사용하여 다른서버에서 sudo 사용하기

2012/01/19 - [Study/Linux] - 너무나 강력한 expect
2012/01/18 - [Study/Linux] - tcl 문법


어제 오늘 expect의 강력한 기능에 놀라고 있습니다.
이제 약간의 새로운 시나리오입니다.

1번 서버에서 2번서버로 ssh 접속을 하고(물론 여기서 암호 입력도 처리할수 있으나 전 RSA인증을 사용하므로 여기서는 패스, 이건 인터넷에서 보면 많이 나옵니다.) 그런다음 2번서버에다가 sudo shutdown -r now 라는 명령어를 내려서 재부팅하는 절차입니다.

그럼 2가지 방법입니다.
아규먼트를 받아서 shutdown -r now를 칠것인가 , 아니면 아예 입력되어있는 스크립트일것 인가.
일단 어짜피 전 재부팅만 필요한 기능이여서 안에 집어 넣었습니다.

spawn ssh 계정@ 주소
send "sudo shutdown -r now\n"
sleep 3
send "password\r\n"
interact

이게 끝입니다.  저기서 가장 중요한 부분은 sleep3과 \r\n과 넣는부분입니다.
일단 \n이 개행할때 쓰는건 알겠는데, \r은 저도 모르겠습니다. 외부소스를 찾아쓴거라

그런데  sleep 이 중요한 이유는
sleep이 없으면 저 스크립트들이 더 빨리 실행되어 버립니다. 즉 sudo 인증창이 나오기전에 저 프로그램이 끝난다는것입니다.

그래서 sleep 3초간 대기 한다음에 sudo가 나오면 그다음 명령어를 보내라는것입니다.


'Study > Linux' 카테고리의 다른 글

Manual Installation and Registration of Java Plugin for Linux  (0) 2012.02.09
우분투 fstab  (2) 2012.01.27
linux grep  (0) 2012.01.25
Secure CRT 설정  (0) 2012.01.20
너무나 강력한 expect  (4) 2012.01.19
tcl 문법  (0) 2012.01.18