自动化部署服务脚本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

转载于:https://www.cnblogs.com/PatrickLee/archive/2012/10/30/2746767.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值