expect 스크립트를 이용한 KLIS 서비스 내리기
2010.05.11 11:54
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
대부분의 프로그램들을 쉘스크립트를 이용하여 자동화 시킬수 있으나,
실행후 대화식의 프로그램은 자동화하기가 난감하다. (예를들면 telnet, ftp 등 로그인이 필요한 프로그램들)
이를 간편화하기 위해서 expect 라는 유틸리티를 이용할 수 있다.
1. 설치
http://www.bullfreeware.com 에서 AIX용 expect 바이너리를 다운받아서 설치하면된다.
단, expect 는 tcl 기반이므로 tcl도 함께 받아서 tcl 먼저 설치후 expect 를 설치하도록 한다.
2. 다음과 같은 스크립트를 이용한다.
----------------------------------------------------------------------------------------
#!/bin/ksh
### KLIS tomcat start
function tcstart
{
su - klismap -c /backup/raid/klis/klismap/start.sh
echo
sleep 1
}
### KLIS middleware stop
function midstop
{
EXPSH=/backup/raid/lmis/lmisdpv/ac41/bin/midstop.sh
su - lmisdpv -c $EXPSH
echo
}
tcstart
midstop
---------------------------------------------------------------------------
2개의 함수를 제작하여 함수를 차례대로 불러낸 스크립트 이다.
midstop 이라는 함수를 보면 /backup/raid/lmis/lmisdpv/ac41/bin/midstop.sh 파일을 불러내도록 되어있다.
/backup/raid/lmis/lmisdpv/ac41/bin/midstop.sh ---------------------------------------------------
cd
cd ac41/bin
./midstop2.sh
-----------------------------------------------------------------------------------------------
midstop2.sh 파일이 expect 문법으로 되어있는 스크립트 이다.
바로 불러오지 않은 이유는 반드시 ac41/bin 에서 실행되어야 하는 스크립트 이기 때문이다.
midstop2.sh ------------------------------------------------------------------------------------
#!/usr/local/bin/expect // expect 문법임을 명시
spawn ./cmdline // cmdline 실행후
expect -re "]:" // ]: 와 같은 메시지가 나오게 되면
sleep 0.5
send "\r" // 그냥 엔터를 친것과 같이 보냄
expect -re "word:"
sleep 0.5
send "\r"
expect -re "2:"
sleep 0.5
send "\r"
expect -re "]:"
sleep 0.5
send "\r"
expect -re "]:"
sleep 0.5
send "\r"
expect -re "/>" // />와 같은 메시지가 나오면
sleep 0.5
send "cd Configurations\r" // cd Configurations 후 엔터를 보낸다.
expect -re "/Configurations>"
sleep 0.5
send "ls KLISMiddleWare\r"
sleep 2
expect -re "/Configurations>"
sleep 0.5
send "ls SystemMonitoringClient\r"
sleep 2
expect -re "/Configurations>"
sleep 0.5
#send "exit\r"
interact // expect 명령어 종료하고 유저에게 제어권을 넘긴다.
--------------------------------------------------------------------------------------------------
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
대부분의 프로그램들을 쉘스크립트를 이용하여 자동화 시킬수 있으나,
실행후 대화식의 프로그램은 자동화하기가 난감하다. (예를들면 telnet, ftp 등 로그인이 필요한 프로그램들)
이를 간편화하기 위해서 expect 라는 유틸리티를 이용할 수 있다.
1. 설치
http://www.bullfreeware.com 에서 AIX용 expect 바이너리를 다운받아서 설치하면된다.
단, expect 는 tcl 기반이므로 tcl도 함께 받아서 tcl 먼저 설치후 expect 를 설치하도록 한다.
2. 다음과 같은 스크립트를 이용한다.
----------------------------------------------------------------------------------------
#!/bin/ksh
### KLIS tomcat start
function tcstart
{
su - klismap -c /backup/raid/klis/klismap/start.sh
echo
sleep 1
}
### KLIS middleware stop
function midstop
{
EXPSH=/backup/raid/lmis/lmisdpv/ac41/bin/midstop.sh
su - lmisdpv -c $EXPSH
echo
}
tcstart
midstop
---------------------------------------------------------------------------
2개의 함수를 제작하여 함수를 차례대로 불러낸 스크립트 이다.
midstop 이라는 함수를 보면 /backup/raid/lmis/lmisdpv/ac41/bin/midstop.sh 파일을 불러내도록 되어있다.
/backup/raid/lmis/lmisdpv/ac41/bin/midstop.sh ---------------------------------------------------
cd
cd ac41/bin
./midstop2.sh
-----------------------------------------------------------------------------------------------
midstop2.sh 파일이 expect 문법으로 되어있는 스크립트 이다.
바로 불러오지 않은 이유는 반드시 ac41/bin 에서 실행되어야 하는 스크립트 이기 때문이다.
midstop2.sh ------------------------------------------------------------------------------------
#!/usr/local/bin/expect // expect 문법임을 명시
spawn ./cmdline // cmdline 실행후
expect -re "]:" // ]: 와 같은 메시지가 나오게 되면
sleep 0.5
send "\r" // 그냥 엔터를 친것과 같이 보냄
expect -re "word:"
sleep 0.5
send "\r"
expect -re "2:"
sleep 0.5
send "\r"
expect -re "]:"
sleep 0.5
send "\r"
expect -re "]:"
sleep 0.5
send "\r"
expect -re "/>" // />와 같은 메시지가 나오면
sleep 0.5
send "cd Configurations\r" // cd Configurations 후 엔터를 보낸다.
expect -re "/Configurations>"
sleep 0.5
send "ls KLISMiddleWare\r"
sleep 2
expect -re "/Configurations>"
sleep 0.5
send "ls SystemMonitoringClient\r"
sleep 2
expect -re "/Configurations>"
sleep 0.5
#send "exit\r"
interact // expect 명령어 종료하고 유저에게 제어권을 넘긴다.
--------------------------------------------------------------------------------------------------
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [공지] 게시자료 열람자유. 불펌금지입니다. | 조인상 | 2010.12.07 | 109082 |
211 | C 컴파일러 라이센스 입력방법 | 조인상 | 2010.05.09 | 13762 |
210 | 케이블 라벨링 탭 | 조인상 | 2010.05.11 | 20457 |
209 | AIX 5L에 아파치(리눅스rpm) 패키지 설치하기 | 조인상 | 2010.05.11 | 16555 |
208 | IBM information center URL | 조인상 | 2010.05.11 | 17275 |
207 | [AIX교육] AIX의 백업관련 커맨드 | 조인상 | 2010.05.11 | 27192 |
206 | DEVICE 관리 | 조인상 | 2010.05.11 | 24762 |
205 | SMIT Fast Paths | 조인상 | 2010.05.11 | 19053 |
204 | mksysb & savevg &alt_disk_install | 조인상 | 2010.05.11 | 17501 |
203 | IBM MP(fix) 설치하기 | 조인상 | 2010.05.11 | 27044 |
202 | IBM pSeries 장비에 시리얼(HMC) 연결하기. | 조인상 | 2010.05.11 | 23750 |
201 | AIX에서 설치된 OS의 커널비트수 확인 | 조인상 | 2010.05.11 | 24379 |
200 | 로그인 다수 실패해서 로그인이 안될때 | 조인상 | 2010.05.11 | 13743 |
199 | AIX 시스템 명령(cpu, memory, disk) | 조인상 | 2010.05.11 | 22244 |
198 | Backup OS Disk만들기(alter disk 백업 방법) | 조인상 | 2010.05.11 | 28471 |
197 | [AIX] NFS service | 조인상 | 2010.05.11 | 20477 |
196 | NFS 마운트 안될때 | 조인상 | 2010.05.11 | 16005 |
195 | errpt 내용 삭제하는 법 | 조인상 | 2010.05.11 | 17656 |
194 | dump device 설정 | 조인상 | 2010.05.11 | 14999 |
193 | NFS를 이용한 백업스크립트 | 조인상 | 2010.05.11 | 14753 |
192 | 시간 동기화시키기 | 조인상 | 2010.05.11 | 13994 |