spring MVC 腳本部署

1.腳本

#!/bin/bash
#chkconfig: 2345 80 90
#description:mqmweb backend administrator service
#processname:mqmweb

#Define variables

APP_HOME=$(cd $(dirname $0); pwd)
srcPath=$(readlink ${0})
if [ -f "$srcPath" ];then
APP_HOME=$(cd $(dirname $srcPath); pwd)
fi
APP_HOME=$(dirname $APP_HOME)
echo "APP_HOME: $APP_HOME"

APP_MAINCLASS=com.lenovo.mqm.server.Launcher
APP_JDK_PATH=$APP_HOME/jdk/jdk-8u92-linux-x64.tar.gz
APP_JAVA_HOME=/opt/jdk1.8.0_92

#Check APP_HOME
if [ ! -d "$APP_HOME" ];then
    echo "ERROR:App not found at $APP_HOME"
    exit 1
fi

#Check JAVA_HOME environment variable
JAVA_HOME=$JAVA_HOME
jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep "java version" | awk '{print $3}' | tr -d \" | awk '{split($0, array, ".")} END{print array[1]"."array[2]}'`
if [ ! "$jdk_version" = "1.8" ];then
    JAVA_HOME=$APP_JAVA_HOME
    if [ ! -d "$JAVA_HOME" ];then
        JAVA_HOME=`find / -maxdepth 3 -name "jdk1.8*"|awk 'NR==1{print $1}'`
        if [ ! -d "$JAVA_HOME" ];then
            JAVA_HOME=`find / -maxdepth 6 -name "jdk1.8*"|awk 'NR==1{print $1}'`
            if [ ! -d "$JAVA_HOME" ];then
                if [ ! -f "$APP_JDK_PATH" ];then
                    echo "ERROR:jdk1.8 is not found"
                    exit 1
                fi
                tar -zxvf $APP_JDK_PATH -C /opt/
                JAVA_HOME=$APP_JAVA_HOME
            fi
        fi
    fi
fi

export JAVA_HOME

echo $JAVA_HOME
#echo "JAVA_HOME=$JAVA_HOME"
#echo "APP_HOME=$APP_HOME"

#Set jvm start arguments
JAVA_OPS="-server -Xmx1024m -Xms1024m -Xss256k"
JAVA_OPS="$JAVA_OPS -XX:+UseG1GC"
JAVA_OPS="$JAVA_OPS -XX:MaxGCPauseMillis=200"
JAVA_OPS="$JAVA_OPS -XX:+HeapDumpOnOutOfMemoryError"
JAVA_OPS="$JAVA_OPS -XX:HeapDumpPath=$APP_HOME/logs"
JAVA_OPS="$JAVA_OPS -XX:ErrorFile=$APP_HOME/logs/jvm_error.log"

#Set class path
lib=$APP_HOME/lib
CLASSPATH=$APP_HOME/conf
for jar in $lib/*.jar
do
	CLASSPATH=$CLASSPATH:$jar
done

#Set web resources path environment variable
WEB_RESOURCES_PATH=$APP_HOME/webapp
export WEB_RESOURCES_PATH


############################################
#Init mqmweb
init(){
    RUN_CMD="\"$APP_HOME/bin/init.sh\" $@"
    #echo $RUN_CMD
    eval $RUN_CMD
}

############################################
#update mqmweb
update(){
    RUN_CMD="\"$APP_HOME/bin/update.sh\" $@"
    #echo $RUN_CMD
    eval $RUN_CMD
}

############################################
#Start server
start(){
    RUN_CMD="\"$JAVA_HOME/bin/java\""
    RUN_CMD="$RUN_CMD -classpath \"$CLASSPATH\""
    RUN_CMD="$RUN_CMD $JAVA_OPS"
    RUN_CMD="$RUN_CMD -DlogDir=$APP_HOME/logs"
    RUN_CMD="$RUN_CMD $APP_MAINCLASS $@ 2>&1 &"
    #RUN_CMD="$RUN_CMD >> \"$APP_HOME/logs/console.log\" 2>&1 &"
    #echo $RUN_CMD
    eval $RUN_CMD
    echo "pid: $!"
    echo $! > $APP_HOME/logs/mqmweb.pid
    echo "The mqmweb service has been started now."
}

############################################
#Stop server
stop(){
    javaps=`$JAVA_HOME/bin/jps -l |grep $APP_MAINCLASS`

    if [ -n "$javaps" ]; then
       psid=`echo $javaps |awk '{print $1}'`
       kill -9 $psid
       echo "The mqmweb service has been stopped now."
    else
       echo "The mqmweb service is not started."
    fi
}

############################################
#Check status
status(){
    javaps=`$JAVA_HOME/bin/jps -l |grep $APP_MAINCLASS`

    if [ -n "$javaps" ]; then
       psid=`echo $javaps |awk '{print $1}'`
       echo "The mqmweb service is running, pid=$psid"
    else
       echo "The mqmweb service is not started."
    fi
}

############################################
# Service
case "$1" in 
    'start')
       start
       ;;
    'stop')
       stop
       ;;
    'restart')
       stop
       start
       ;;
    'status')
       status
       ;;
    'init')
       init $2 $3 $4
       ;;
    'update')
       update $2 $3 $4
       ;;
    *)
       echo "Usage: $0 {start|stop|restart|status|init|update}"
       exit 1
esac

exit $?

2.部署流程

####部署方式
1. 打包後將target下面的mqmweb-3.5.0.tar.gz上傳服務器,並解壓
       tar -zxvf mqmweb-3.5.0.tar.gz
2. 進入解壓後的文件中的腳本文件,替換windows換行符爲linux換行符
        vi -b ./mqmqweb-3.5.0/bin/mqmtool
        :%s/^M//g
    注意:注意了"^M"不是直接輸入的,是用ctrl+v 和 ctrl+m 分別輸入的。
    
3. 啓動項目
        sh ./mqmqweb-3.5.0/bin/mqmtool start
        
4. 其他操作
        sh ~~mqmtool(start|stop|restart|status|init|update)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章