expect를 이용한 자동화(1) - ssh
expect는 리눅스 혹은 유닉스에 있는 script language이다.
일반 쉘을 이용할 경우, ssh, scp, passwd 변경등을 할 때, script로 처리할 수 없고, console창에
interactive하게 입력해야 한다. 이럴 경우에 사용할 수 있는 script language가 expect이다.
expect는 화면에 특정 문자열이 왔을 때, 응답으로 어떤 문자열로 응답하는 식의 처리가 가능하다.
이를 이용해 ssh 자동 접속 쉘, scp 접속 쉘, passwd 변경 쉘 등을 만들어 보겠다.
expect에 대해서 더 정확한 문법을 알고 싶다면, 다음 URL을 참조하기 바란다.
파일명 |
ssh.exp |
파일 내용 |
#!/usr/bin/expect proc usage {} { set argc [llength $argv] if { $argc != 3 } { set timeout -1 spawn ssh $USERID@$HOST expect { interact |
실행 방법 |
ssh.exp ip_address userid passwd ex) ssh.exp 10.10.10.1 noritor noritor123 |
위의 표의 파일명과 파일 내용으로 파일을 만든 뒤, 파일 권한을 실행 가능하게 변경한 뒤, 실행방법대로 실행하면 된다. 배포 쉘을
만들 때 꽤 유용하게 쓰인다.