zoukankan      html  css  js  c++  java
  • 自动化部署服务脚本shell脚本

    转自:http://sunboy522.blog.163.com/blog/static/455443720124244426563/

    #!/bin/bash

    tree=$1
    select=$2
    if [ "$tree" == "" ]; then
        echo "Must input tag(trunk),for example:ci.sh trunk"
        exit 1
    elif [ "$tree" != "trunk" ]; then
        echo "tag is error,input trunk"
        exit 1
    fi

    ROOT_PATH=/home/co_channel
    if [ "$tree" == "trunk" ]; then
        SRC_PATH=/home/co_channel/code/trunk   
    fi
    SERVER_PATH=/home/co_channel/tomcat
    SCRIPT_PATH=/home/co_channel/script

    #Build Project
    build(){
        cd $PROJECT_PATH
        mvn clean
        svn up
        mvn package -Dmaven.test.skip=true
    }
    #Install Project
    install(){
        cd $PROJECT_PATH
        mvn clean
        svn up
        mvn -U install -Dmaven.test.skip=true
    }
    #Deploy Web Project and Restart Web Server
    deploy(){
        echo $SERVER_PATH
        num=`ps aux|grep java|grep co_channel|grep -v grep|grep -v cronolog|awk '{print $2}'`
        echo $num

        if [[ $num -gt 0 ]]
        then
                kill -9 $num
                sleep 5
                echo "stop tomcat success"
        fi

        rm -f -R $DEPLOY_PATH

        cp -f -R $BUILD_PATH $DEPLOY_PATH

        $CATALINA_HOME/bin/startup.sh

        echo "start tomcat success"
    }
    deployNoRestart(){
        rm -f -R $DEPLOY_PATH
        cp -f -R $BUILD_PATH $DEPLOY_PATH
    }
    restart(){
        num=`ps aux|grep java|grep co_channel|grep -v grep|grep -v cronolog|awk '{print $2}'`
        if [[ $num -gt 0 ]]
        then
                kill -9 $num
                sleep 5
                echo "stop tomcat success"
        fi
        $CATALINA_HOME/bin/startup.sh

        echo "start tomcat success"
    }
    echo "Build and Deploy Project"
    echo "---------------------------------"
    echo "   Choose One Project           -"
    echo "---------------------------------"
    echo "0)  restart                     -"
    echo "1)  channel_parent              -"
    echo "2)  channel_core                -"
    echo "3)  channel_rest                -"
    echo "4)  channel_web                 -"
    echo "5)  channel_script              -"
    echo "6)  channel_backweb             -"
    echo "---------------------------------"
    if [ "$select" == "" ]; then
        read select
    fi

    case $select in
            0)

            echo "Restart"
            restart   
        ;;
            1)
                echo "Parent Project"
            PROJECT_NAME=channel_parent
            PROJECT_PATH="$SRC_PATH"/$PROJECT_NAME
            echo $PROJECT_NAME
            echo $PROJECT_PATH
            install
        ;;
            2)
            echo "Core Project"
                    PROJECT_NAME=channel_core
                    PROJECT_PATH="$SRC_PATH"/$PROJECT_NAME
                    echo $PROJECT_NAME
                    echo $PROJECT_PATH
                    install
        ;;
            3)
                    echo "Rest Project"
                    PROJECT_NAME=channel_rest
                    PROJECT_PATH="$SRC_PATH"/$PROJECT_NAME
                    BUILD_PATH="$PROJECT_PATH"/target/"$PROJECT_NAME"
                    DEPLOY_PATH="$SERVER_PATH"/webapps/"$PROJECT_NAME"
                    echo $PROJECT_NAME
                    echo $PROJECT_PATH
                    echo $BUILD_PATH
                    echo $DEPLOY_PATH

                    cp -f -R "$SRC_PATH"/channel_core/src/main/resources/* "$SRC_PATH"/$PROJECT_NAME/src/main/resources
                    build
                    deploy
            ;;
            4)
                echo "Web Project"
                    PROJECT_NAME=channel_web
                    PROJECT_PATH="$SRC_PATH"/$PROJECT_NAME
                    BUILD_PATH="$PROJECT_PATH"/target/"$PROJECT_NAME"
                    DEPLOY_PATH="$SERVER_PATH"/webapps/"$PROJECT_NAME"
                    echo $PROJECT_NAME
                    echo $PROJECT_PATH
                    echo $BUILD_PATH
                    echo $DEPLOY_PATH
            cp -f -R "$SRC_PATH"/channel_core/src/main/resources/* "$SRC_PATH"/$PROJECT_NAME/src/main/resources
            build   
            deploy
        ;;
        5)
                echo "Script"
                PROJECT_NAME=channel_script
                PROJECT_PATH="$SRC_PATH"/$PROJECT_NAME
                BUILD_PATH="$PROJECT_PATH"/target/"$PROJECT_NAME"
                DEPLOY_PATH="$SCRIPT_PATH"
                echo $PROJECT_NAME
                echo $PROJECT_PATH
                echo $BUILD_PATH
                echo $DEPLOY_PATH
                build
                deployNoRestart
                chmod a+x $DEPLOY_PATH/**/*.sh           
        ;;     
         6)
                echo "Web Back Project"
                    PROJECT_NAME=channel_backweb
                    PROJECT_PATH="$SRC_PATH"/$PROJECT_NAME
                    BUILD_PATH="$PROJECT_PATH"/target/"$PROJECT_NAME"
                    DEPLOY_PATH="$SERVER_PATH"/webapps/"$PROJECT_NAME"
                    echo $PROJECT_NAME
                    echo $PROJECT_PATH
                    echo $BUILD_PATH
                    echo $DEPLOY_PATH
            cp -f -R "$SRC_PATH"/channel_core/src/main/resources/* "$SRC_PATH"/$PROJECT_NAME/src/main/resources
            build
            deploy
        ;; 
    esac
    echo "Bye !!!"
    exit 0

  • 相关阅读:
    Merge k Sorted Lists
    N-Queens
    N-Queens II
    Reorder List
    使用AJAX实现文件上传时Illegal invocation错误
    php页面开启错误提示
    php分割最后一个逗号后面的字符
    微信卡券添加(微擎系统)
    php请求php
    Navicat MySQL连接Linux下MySQL的问题解决方案
  • 原文地址:https://www.cnblogs.com/PatrickLee/p/2746767.html
Copyright © 2011-2022 走看看