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

  • 相关阅读:
    Oracle DBA 数据库结构试题2
    Oracle DBA启动和关闭例程试题
    Oracle 命令大汇总备份与恢复
    数据库管理应注意的问题
    Using ICSharpCode.SharpZipLib for zip file
    SQL 2005 新功能
    ASP.net的RUL重写
    datalist 的 Datasource怎样绑定 泛型 List
    文件压缩/解压缩开源项目SharpZipLib在C#中的使用
    asp.net页面间传值的9种方式
  • 原文地址:https://www.cnblogs.com/PatrickLee/p/2746767.html
Copyright © 2011-2022 走看看