Linux Tomcat自动检测、重启脚本

    客户的机器有时遇见宕机的情况,虽然我在Linux服务器上配置了Tomcat自启动程序,可以在机器重启的时候自动部署web应用。但是,当数据库服务器与Web应用服务器不能同时启动的时候,Tomcat启动项目就失败了。最后,写了shell脚本,来自动判断是否有tomcat进程,如果没有的话,就重启tomcat,否则,不执行任何操作,并将tomcat启动日志写到文件里。脚本如下:

#/bin/bash  
    #############################################  
    # author zhao yanan  
    # date 2010/08/23  
    # update 2011/01/10  
    # Automatic detection and restart tomcat  
    #############################################  
     
    #脚本可写入到自动任务中,执行周期可根据tomcat起停时间长短来定,如下,每天0点到20点之间每隔10分钟检查一次  
    #echo "*/3 0-24 * * * root /root/script/tomcat_check.sh  >> /root/script/tomcat_check.log 2>&1" >> /etc/crontab  
     
    echo ========================================  
    date 
    PROCESS_NUM=`ps -ef | grep tomcat | grep -v "grep" | wc -l`
    if [ $PROCESS_NUM -lt 1 ]; then                                  # 判断是否有Tomcat进程,如果没有,则执行接下来的任务,否则执行else后的任务。  
    #   java Environment variables                                #设置jdk的环境变量,根据自已的实际情况设定  
		export JAVA_HOME=/usr/local/jdk1.6.0_25
		export PATH=$JAVA_HOME/bin:$PATH 
		export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
		export CATALINA_HOME=/usr/local/tomcat

      echo "restart tomcat." 
      ${CATALINA_HOME}/bin/shutdown.sh                          #关闭tomcat  
      sleep 5                                                #等待tomcat关闭,一般是1~150s不等  
      kill -9 `ps aux|grep "/usr/local/tomcat"|grep -v grep|awk '{print $2}'`  #等待时间结束后,偿试强制结束tomcat进程  
      sleep 5  
      ${CATALINA_HOME}/bin/catalina.sh run  
      sleep 5     
    else 
        echo "checked."                                           #检测成功,提示已检查  
    fi

相关推荐