▶ 뭉충닷컴
 
mungchung.com login
Site Search
My Space
주절주절...
공부방
쥔장소개
Board
자유게시판
유용한 정보
자료실
Programming
강좌 & Articles
Spring 3.0
프로그래밍 Tip
   -ASP
   -PHP
   -JavaScript
   -HTML
   -Java/JSP
   -Database
   -Crystal Report
   -Visual Basic
   -이클립스
   -리눅스
   -기타
Windows API (VB)
Spread Sheet 7.0
컴퓨터활용 Tip
Other things
StarCraft 전략
StarCraft 문서
김용(金庸)
Son Q & Dieda

WEB서버, WAS서버가 죽었을 경우 놀다가다 급히 들어와서 이놈을 살려줘야하는데 이런 귀찮음을 없애고자 3분마다 서버상태를 체크해서 서버오류시 지가 알아서 재시작하는 방법이다.

테스트 환경은 다음과 같다.
OS : 레드햇 리눅스
WAS서버 : 톰캣 6.0

1. 웹root에 아래 내용만 넣은 checkLive.jsp 파일을 생성한다.

success

http://111.111.111:8080/checkLive.jsp 실행해서 success 란 메시지가 정상적으로 뿌려지는지 확인한다.

2. autoRestartServer.sh 파일 생성
적당한 위치(여기선 /home1/irteam/script/)에 생성해서 다음 내용 넣는다.

#!/bin/sh
##### step 1
export JAVA_HOME=/home1/irteam/jdk/jdk1.6.0_13
export PATH="$PATH:$JAVA_HOME/bin"
export CATALINA_HOME=/home1/irteam/tomcat/
export PATH="$PATH:$CATALINA_HOME/bin"
export checkFile=/home1/irteam/script/checkLive.jsp
export nowDate=`date +%Y-%m-%d%t%H:%M`

##### step 2
cd /home1/irteam/script
wget http://111.111.111.111:8080/checkLive.jsp

##### step 3
if [ -r "$checkFile" ] ; then
    echo "$nowDate 정상!"
    export file_content="`cat $checkFile`"
    rm -rf $checkFile
    if [ $file_content != "success" ] ; then
       /home1/irteam/tomcat/bin/shutdown.sh
       sleep 10
       /home1/irteam/tomcat/bin/startup.sh
    fi
else
    echo "$nowDate 실패!"
    /home1/irteam/tomcat/bin/shutdown.sh
    sleep 10
    /home1/irteam/tomcat/bin/startup.sh
    echo "$nowDate 서버 재시작 완료!"
fi

chmod 744 autoRestartServer.sh 해서 실행권한 준다.
그리고 나서 이 shell 파일 실행시켜서 정상작동하는지 확인한다.

step 1
그냥 /home1/irteam/script/autoRestartServer.sh 실행시킬 경우에는 실행이 되지만 이 걸 crontab에 등록할 경우에는 자바홈, 톰캣홈을 못찾는 경우가 생긴다. 그래서 shell 실행시 필요한 환경변수인 JAVA_HOME, CATALINA_HOME 등을 직접 선언해준다.
step 2
리눅스의 wget 명령어를 이용해서 http://111.111.111.111:8080/checkLive.jsp 파일의 내용을 가져온다. 접속 이 정상적이라면 checkLive.jsp 파일을 다운받는다. 접속이 정상적이지 않다면 오류가 발생하면서 이 파일을 다운받지 못한다.
step 3
checkLive.jsp 파일이 존재하는지 확인후 그 파일 내용이 success라 적혀있으면 정상적으로 서버가 동작중것이고 그렇지 않다면 서버오류로 인식해서 톰캣서버를 재시작한다.

3. crontab에 등록

## tomcat server auto restart
*/3 * * * * /home1/irteam/script/autoRestartServer.sh >> /home1/irteam/script/autoRestartServer.log

3분마다 체크하도록 crontab에 등록한다. 체크한 로그는 autoRestartServer.log에 기록되도록 해서 나중에 서버의 동작 상태를 확인 할 수 있도록 한다.



원래 초기버젼은 3분마다 무조건 서버를 재시작하는하는 방식이였다. 이 방식의 경우 서버 실행중에 또 서버를 실행하는 것으로 나중에 실행된 것은 내부적으로 오류를 발생하면서 종료된다. 실제, 이런 방식을 이용해도 실제 서비스에는 문제가 없으나 간혹가다가 리눅스상에서 불필요한 PID들이 생기는 경우가 있고 주기적으로 오류메시지가 발생한다는것이 좀 찝찝한 구석이 있다.

두번째로 시도한 방식이 톰캣PID 존재여부로 서버중지여부를 판단해서 서버재시작shell을 만들었는데 이 방식은 톰캣서버가 비정상적으로 종료될경우 찌꺼기 같은 톰캣PID들이 남아있어서 서버중지여부를 판단할수 없는 경우가 있었다.

그래서 이것저것 시도해본 결과 좀 번거롭더라도 주기적으로 웹서버에 연결해서 서버상태를 체크하는 방식을 사용하게 된것이다.

문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
27 keyfile을 이용한 ssh 접속 방법 뭉충닷컴 2010-10-28 13792
26 멀티 브라우저 지원하는 frame, iframe 접근 코딩 방법 [3] 뭉충닷컴 2010-07-21 26979
» crontab을 이용한 Tomcat 서버 자동 재시작 shell 뭉충닷컴 2009-08-28 25279
24 자바스크립트로 각 form의 element(요소)에 접근 방법 file [2] 뭉충닷컴 2008-09-11 61686
23 ERwin 에서 Logical의 컬럼명을 코멘트(Comment)로 변경하기 file [2] 뭉충닷컴 2008-01-16 32135
22 Tabular Data Control 마지막 강좌! 뭉충닷컴 2007-06-14 15709
21 ASP로 웹 어플리케이션 주소 사용하기 file 뭉충닷컴 2006-12-10 17992
20 VB로 WebBrowser 컨트롤의 HTML 제어 file 뭉충닷컴 2006-12-01 21496
19 ASP 페이징 쉽게 처리하기 file [4] 뭉충닷컴 2006-08-29 24561
18 두개의 비슷한 DB를 비교해서 변경된 부분 찾아내기 file 뭉충닷컴 2006-05-03 15023
17 ASP에서 Class 를 이용해보자 file 뭉충닷컴 2006-02-26 25046
16 Hotmail의 DHTML EDITOR 편집기를 이용해보자. file [34] 뭉충닷컴 2006-02-04 30320
15 Tabular Data Control 응용 - 제목 Sort (정렬) 쉽게 하기 [3] 뭉충닷컴 2006-01-27 14147
14 스크립트(Script) 코드를 암호화 시켜보자(Encode/Decode) [2] 뭉충닷컴 2005-06-10 19143
13 dll을 이용한 로그인 file [1] 뭉충닷컴 2005-11-25 22077
12 Tabular Data Control 응용 - 페이징 처리하는 3가지 방법 file [1] 뭉충닷컴 2005-11-23 16297
11 Query를 잼있고, 유용하게 사용해보자 file [3] 뭉충닷컴 2005-10-01 14742
10 Tabular Data Control 응용 - 테이블의 행 배경색이 격으로 변하게하기 뭉충닷컴 2005-09-25 15817
9 폼(Form) 검증해주는 스크립트(Script) file [15] 뭉충닷컴 2005-06-07 19525
8 asp 로 서버에 zip 압축/압축해제(풀기) 예제 file [8] 뭉충닷컴 2005-08-12 20012
7 MS-SQL의 osql.exe 이용 하기 (도스상에서 sql 구문 이용) 뭉충닷컴 2005-09-25 19368
6 SQL Script 로 ERD와 테이블 생성 손쉽게하기 뭉충닷컴 2005-09-25 22168
5 Tabular Data Control 기초 다지기 4 - 마지막! file 뭉충닷컴 2005-09-25 14727
4 Tabular Data Control 기초 다지기 3 file 뭉충닷컴 2005-09-25 14491
3 Tabular Data Control 기초 다지기 2 file 뭉충닷컴 2005-09-25 14209
2 Tabular Data Control 기초 다지기 1 file [1] 뭉충닷컴 2005-09-25 15337
1 OWC를 이용한 웹에서 엑셀 그래프 그리기 file [4] 뭉충닷컴 2007-12-19 19395