본문 바로가기

Apache / Tomcat

[Tomcat] 톰캣 실행여부 확인 및 시작 Shell Script

반응형

서버를 운영하다보면 장애 대응을 위하여 여러가지 대비책을 세우게 되는데,

Tomcat을 사용하는 곳에서 많이 이용하는것중 하나가 톰캣을 자동으로 시작 시킬수 있는 shell Script가 아닐까 싶다.


아래 스크립트는 톰캣의 PID와 개수를 확인하여 톰캣이 실행중이지 않을때 톰캣을 자동으로 시작시켜주는 쉘 스크립트 이다.



* 주의 : 서버에 톰캣 1개만 설치되어 있다는 가정하에 작성

#!/bin/sh


export JAVA_HOME=/usr/local/java
export PATH="$PATH:$JAVA_HOME/bin"
export CATALINA_HOME=/usr/local/tomcat

Log=$CATALINA_HOME/logs/restart.log
DATE=`date +%Y%m%d-%H%M%S`

# 톰캣 PID 찾기
tomcatPID=`ps -ef | grep tomcat | grep -v grep | grep -v vi | awk '{print $2}'`

# 톰캣 프로세스 카운트
tomcatCnt=`ps -ef | grep tomcat | grep -v grep | grep -v vi | wc -l`

if [ $tomcatCnt -gt 0 ]
then
    echo "$DATE : TOMCAT이 정상 작동중입니다.(PID : tomcatPID)" >> $Log
else
    echo "$DATE : TOMCAT을 시작합니다(1)" >> $Log
    
    # 톰캣 재시작
    $CATALINA_HOME/bin/startup.sh

    tomcatPID=`ps -ef | grep tomcat | grep -v grep | grep -v vi | awk '{print $2}'`
    DATE=`date +%Y%m%d-%H%M%S`

    echo "$DATE : TOMCAT이 시작되었습니다.(PID : tomcatPID)" >> $Log
fi


echo "##############################################################################" >> $Log



스크립트를 작성하고 crontab 등을 이용하여 주기적으로 실행시켜주면 된다.
# 톰캣 체크. 1분마다
*/1 * * * * /home/tester/tomcatCheck.sh > /dev/null 2>&1