• 自己主动下载源代码_并编译_打包_部署_重新启动服务的Shell脚本


    这里面Shell的各个操作含义,可參考我三年前的这篇文章:http://blog.csdn.net/jadyer/article/details/7960802

    #!/bin/sh
    APP_NAME=engine
    APP_WARS=JadyerEngine-web/target
    APP_PATH=/app/tomcat-6.0.43
    APP_CODE=sourcecode
    SVN_URL=https://svn.sinaapp.com/jadyer/2/repository/JadyerEngine
    SVN_USER=jadyer@yeah.net
    SVN_PSWD=玄玉
    
    appPID=0
    getAppPID(){
        pidInfo=`ps aux|grep java|grep $APP_PATH|grep -v grep`
        if [ -n "$pidInfo" ]; then
            appPID=`echo $pidInfo | awk '{print $2}'`
        else
            appPID=0
        fi
    }
    
    downloadAndCompileSourceCode(){
        cd $APP_PATH
        mkdir $APP_CODE
        svn --username $SVN_USER --password $SVN_PSWD checkout $SVN_URL $APP_CODE
        cd $APP_CODE
        mvn clean package -DskipTests
    }
    
    shutdown(){
        getAppPID
        echo "[玄玉] ========================================================================================================"
        if [ $appPID -ne 0 ]; then
            echo -n "[玄玉] Stopping $APP_PATH(PID=$appPID)..."
            kill -9 $appPID
            if [ $?

    -eq 0 ]; then echo "[Success]" echo "[玄玉] ========================================================================================================" else echo "[Failed]" echo "[玄玉] ========================================================================================================" fi getAppPID if [ $appPID -ne 0 ]; then shutdown fi else echo "[玄玉] $APP_PATH is not running" echo "[玄玉] ========================================================================================================" fi } deploy(){ cd $APP_PATH/webapps/ rm -rf $APP_NAME rm -rf $APP_NAME.war cp $APP_PATH/$APP_CODE/$APP_WARS/*.war $APP_NAME.war cd $APP_PATH/logs/ rm -rf * cd $APP_PATH rm -rf $APP_CODE } startup(){ cd $APP_PATH/bin ./startup.sh tail -100f ../logs/catalina.out } downloadAndCompileSourceCode shutdown deploy startup

    上面的脚本在运行的过程中。若Ctrl+C退出后,会导致应用部署失败,故编写了以下这个可在后台运行的脚本

    不想用以下这个脚本也能够,仅仅是在运行上面的脚本时直接[nohup ./deploy-engine.sh &]即可了

    即便如此。个人仍推荐仅仅用上面的脚本就够了(假设是你自己用的话)!

    #!/bin/sh
    APP_LOGS=/app/tomcat-6.0.43/logs
    SHELL_NAME=bin/deploy-engine.sh
    
    shellPID=0
    getShellPID(){
        pidInfo=`ps aux|grep $SHELL_NAME|grep -v grep`
        if [ -n "$pidInfo" ]; then
            shellPID=`echo $pidInfo | awk '{print $2}'`
        else
            shellPID=0
        fi
    }
    
    shutdown(){
        getShellPID
        echo "[玄玉] ========================================================================================================"
        if [ $shellPID -ne 0 ]; then
            echo -n "[玄玉] Stopping $SHELL_NAME(PID=$shellPID)..."
            kill -9 $shellPID
            if [ $? -eq 0 ]; then
                echo "[Success]"
                echo "[玄玉] ========================================================================================================"
            else
                echo "[Failed]"
                echo "[玄玉] ========================================================================================================"
            fi
            getShellPID
            if [ $shellPID -ne 0 ]; then
                shutdown
            fi
        else
            echo "[玄玉] $SHELL_NAME is not running"
            echo "[玄玉] ========================================================================================================"
        fi
    }
    
    #[2>&1]表示把标准错误(stderr)重定向到标准输出(stdout),否则会提示[nohup: redirecting stderr to stdout]
    startupByNohup(){
        cd $APP_LOGS
        rm -rf nohup.log
        nohup ../$SHELL_NAME > nohup.log 2>&1 &
        sleep 1
        tail -100f nohup.log
    }
    
    shutdown
    startupByNohup
  • 相关阅读:
    20199319 《深入理解计算机系统》第一章学习总结
    速读《深入理解计算机系统》
    《文献管理与信息分析》快速学习
    速读《构建之法(第三版)》 20199319
    2019-2020-1 20199319《Linux内核原理与分析》第六周作业
    2019-2020-1 20199319《Linux内核原理与分析》第五周作业
    2019-2020-1 20199319《Linux内核原理与分析》第四周作业
    2019-2020-1 20199319《Linux内核原理与分析》第三周作业
    2019-2020-1 20199319《Linux内核原理与分析》第二周作业
    2019-2020-1 20199319《Linux内核原理与分析》第一周作业
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5215679.html
Copyright © 2020-2023  润新知