1. export란?
expect 는 다른 응용 어플리케이션과 상호대화(interactive)하는 프로그램을 만들기 위해 만들어진 프로그램이다. 나중에 expect 를 보면 알겠지만, 간단한 프로그래밍 언어 형식을 취하고 있음을 알수 잇다.
expect 를 이용하면 다른 어플리케이션과 상호대화를 할수 있게 됨으로 자동화된 프로그램을 만들수가 있다. telnet 를 예로 들어보자면, expect 를 이용해서 telnet 와 상호작용하게 함으로 써, 자동로그인 하는 프로그램을 만들수도 있으며, 약간 응용해서 원격지의 서버를 자동으로 관리하는 프로그램을 만들수도 있다.
이러한 어플리케이션과의 상호대화는 어플리케이션의 표준출력 를 분석함으로써 이루어진다. 간단한 예로 telnet 을 써서 어떤 호스트에 연결하면 로그인 하기 위해서 수동으로 "아이디" 와 "패스워드"를 입력 해야 할것이다. 이경우 telnet 어플리케이션은 사람과 상호대화하는데, 사람은 "login :" 과 "password :"와 같은 표준출력되는 문자열을 통해서 자신의 아이디와 패스워드를 입력하는 형식으로 telnet 과 상호대화 하게 된다. expect 역시 "login :"과 같은 특정한 문자열을 만나면 아이디를 입력하도록 하는 방식으로 telnet 와 상호작용할수 있다. 사람이 하는 일을 expect 를 이용해서 대신하도록 하는 케이스라고 보면 된다.
이러한 expect 의 상호대화 어플리케이션 제작 기능을 이용하면 중앙서버에서 여러대의 호스트를 원격지에서 자동으로 관리하는 어플리케이션의 손쉬운 제작이 가능하다.
첨부파일 참고
3. rpm -Uvh expect-5.42.1-1.i386.rpm
4. test.sh
#!/usr/bin/expect
set timeout 10
spawn telnet X.X.X.X
expect "login:"
send "id\n"
expect "Password:"
send "password\n"
interact
5. 실행 test