美文网首页
管理tomcat单机多实例脚本

管理tomcat单机多实例脚本

作者: loveroot | 来源:发表于2017-06-12 09:14 被阅读6次
    #!/bin/bash
    
    # Apache Tomcat daemon
    # chkconfig: 345 10 10
    # description: Apache Tomcat daemon
    # processname: tomcat
                                     
    
    #定义JAVA_HOME
    export JAVA_HOME=/app/jdk1.8
    
    #定义多个tomcat的总目录,/app/tomcatserver目录下有tomcat6001,tomcat7001,tomcat8001,tomcat9001 四个tomcat实例。
    tom="/app/tomcatserver/tomcat"
    
    #定义启动脚本路径
    startup_bin="bin/startup.sh"
    
    #定义tomcat的启动方式,启动方式为tomcat.sh p1 start类似的命令
    usage="{p1 args |p2|p3|all} {start|stop|restart|status}"
    
    dev="/dev/null"
    
    #定义如何启动tomcat,在此我们是通过个数tomcat以及前面定义的tomcat的命令,来操作tomcat
    
    #judge $1 $2 whether null
    
    if [ "$1" == "" -o "$2" == "" ];then
        echo "Usage: $0 $usage"
        exit 1
    fi
    
    #judge $1
    
    case $1 in
       "p1")
        tomcats=$2
    ;;
       "p2")
        tomcats="6001 7001"
    ;;
       "p3")
        tomcats="6001 7001 8001"
    ;;
       "all")
        tomcats="6001 7001 8001 9001"
    ;;
    #   *)
    #   echo "Usage: $0 $usage"
    #;;
    esac
    
    #定义tomcat的启动
    #define start function
    
    tomcatstart() {
        for i in $tomcats
            do
                tom_home="$tom$i"
                run_status=$(ps -ef | grep -v 'grep' | egrep "java.*=${tom_home}")
    
                if [ "${run_status}X" != "X" ];then
                    echo "tomcat$i is already running…"
                else
                    ${tom_home}/${startup_bin} &>$dev
                    echo "tomcat$i starting,Please wait 2s…"
                    sleep 2
                fi
            done
        }
    
    #定义tomcat的关闭
    #define stop function
    
        tomcatstop() {
          for j in $tomcats
            do
                tom1_home="$tom$j"
                tomcat_pid=$(ps -ef | grep ${tom1_home} | grep "org.apache.catalina.startup.Bootstrap start" | awk '{printf $2}')
                if [ "${tomcat_pid}X" == "X" ];then
                    echo "tomcat$j is not running…"
                else
                    kill -9 ${tomcat_pid} & >$dev
                    echo "tomcat$j stopping,Please wait 1s…"
                    sleep 1
                    echo "delte tomcat$j cache,Please wait 1s…"
                    rm -rf ${tom1_home}/work/*
                fi
            done
        }
    
    #定义tomcat的重启
    #define restart function
    
    tomcatrestart() {
    
        for m in $tomcats
            do
                tom2_home="$tom$m"
                run2_status=$(ps -ef | grep -v 'grep' | egrep "java.*=${tom2_home}")
                if [ "${run2_status}X" == "X" ];then
                    echo "tomcat$m is not running…"
                    ${tom2_home}/${startup_bin} &>$dev
                    echo "tomcat$m starting,Please wait 2s…"
                    sleep 2
                else
                    ps -ef | grep ${tom2_home} | grep "org.apache.catalina.startup.Bootstrap start" | awk '{printf $2}'| xargs kill -9 >$dev
                    echo "tomcat$m stopping,Please wait 2s…"
                    sleep 1
                    ${tom2_home}/${startup_bin} &>$dev
                    echo "tomcat$m starting,Please wait 2s…"
                    sleep 2
                fi
            done
        }
    
    #定义tomcat的状态
    
    #define status function
    
        tomcatstatus() {
            for n in $tomcats
                do
                    tom3_home="$tom$n"
                    run3_status=$(ps -ef | grep -v 'grep' | egrep "java.*=${tom3_home}")
                if [ "${run3_status}X" == "X" ];then
                    echo "tomcat$n is not running…"
                    else
                    echo "tomcat$n is running"
                fi
            done
        }
    
    
        #judge $2 $3
        if [ "$3" == "" ];then
            case $2 in
            "start")
            tomcatstart
            ;;
            "stop")
            tomcatstop
            ;;
            "restart")
            tomcatrestart
            ;;
            "status")
            tomcatstatus
            ;;
            *)
            echo "Usage: $0 $usage"
            ;;
            esac
        else
            case $3 in
                    "start")
                    tomcatstart
                ;;
                    "stop")
                    tomcatstop
                ;;
                    "restart")
                    tomcatrestart
                ;;
                    "status")
                    tomcatstatus
                ;;
                    *)
                    echo "Usage: $0 $usage"
                ;;
                esac
        fi
    

    相关文章

      网友评论

          本文标题:管理tomcat单机多实例脚本

          本文链接:https://www.haomeiwen.com/subject/wnakqxtx.html