maven+dubbo服务部署脚本示例

1 篇文章 0 订阅
1 篇文章 0 订阅

java+maven+dubbo服务部署脚本示例

前提说明
文中用到的参数说明:

project_name: 项目名
project_dir: 项目目录
env: 发布的环境参数
release_dir: 产物存放的位置
server_dir: 服务的目录

项目目录结构
这里写图片描述

  1. 编译脚本 (这里以发布dev分支进行说明)

    cd ${project_dir}
    git checkout dev
    git pull origin dev
    mvn clean install -P${env} 

    跳过测试,修改命令

    mvn clean install -Dmaven.test.skip -P${env}

    如果有拷贝产物需求的话,加上下面的命令

    cp ${project_dir}/target/${project_name}.tar.gz ${release_dir} 
  2. 部署脚本

    cd ${server_dir}
    cp ${release_dir}/${project_name}.tar.gz ./
    rm -rf ./lib
    rm -rf ./bin
    tar zxf ${project_name}.tar.gz
    sh ./bin/killws.sh
    sh ./bin/startws.sh

附加
env.sh

#!/bin/bash

source /etc/profile

PRODUCTION=test
JAVA_HOME=${JAVA_HOME}
OUTPUT_HOME=/data/home/deploy/output
LOG_ROOT=${OUTPUT_HOME}/logs
STDOUT_LOG=${LOG_ROOT}/stdout.banniu.data.customtable.log
MAIN_CLASS=banniu.data.customtable.DataCustomTableMain
XMS=-Xms1024m
XMX=-Xmx1024m

export PRODUCTION JAVA_HOME OUTPUT_HOME DEBUG_PORT JMX_PORT LOG_ROOT XMS XMX
export LANG=zh_CN.UTF-8

killws.sh

#!/bin/bash
if [ `id -u` = 0 ]
then
    echo "********************************************************************"
    echo "ERROR! root (the superuser) can't run this script."
    echo "********************************************************************"
    exit 1
fi

cd `dirname $0`
BIN_DIR=`pwd`

cd ..
DEPLOY_HOME=`pwd`

HOST_NAME=`hostname`

KILL_PIDS=`ps  --no-heading -C java -f --width 1000 | grep "$DEPLOY_HOME" |awk '{print $2}'`
if [ -z "$KILL_PIDS" ]; then
    echo "java service monitor $HOST_NAME is not started!"
    exit 1;
fi

echo -e "Stopping havana monitor server $HOST_NAME ...\c"
for PID in ${KILL_PIDS} ; do
        kill ${PID} > /dev/null 2>&1
done

COUNT=0
while [ ${COUNT} -lt 1 ]; do
    echo -e ".\c"
    sleep 1
    COUNT=1
    for PID in ${KILL_PIDS} ; do
                PID_INST=`ps --no-heading -p ${PID}`
                if [ -n "$PID_INST" ]; then
                        COUNT=0
                        break
                fi
     done
done
echo "OK!"
echo "PID: $KILL_PIDS"

startws.sh

#!/bin/bash

if [ `id -u` = 0 ]
then
    echo "********************************************************************"
    echo "** Error: root (the superuser) can't run this script!"
    echo "********************************************************************"
    exit 1
fi

cd `dirname $0`
BIN_DIR=`pwd`

cd ..
DEPLOY_HOME=`pwd`

if [ ! -d ${DEPLOY_HOME} ]; then
    mkdir ${DEPLOY_HOME}
fi

HOST_NAME=`hostname`

#import environment variable from env.sh
. ${BIN_DIR}/env.sh

if [ ! -r ${JAVA_HOME}/bin/java ]; then
    echo "********************************************************************"
    echo "** Error: havana.javahome=$JAVA_HOME not exist!"
    echo "********************************************************************"
    exit 1
fi

JAVA_MEM_OPTS=" -server $XMS $XMX -XX:SurvivorRatio=2 -XX:+UseParallelGC "
JAVA_OPTS=" $JAVA_MEM_OPTS "

export JAVA_OPTS=" $JAVA_OPTS -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true"

EXIST_PIDS=`ps --no-heading -C java -f --width 1000 | grep "$DEPLOY_HOME" |awk '{print $2}'`
if [ ! -z "$EXIST_PIDS" ]; then
    echo "havana service server $HOST_NAME already started!"
    echo "PID: $EXIST_PIDS"
    exit;
fi

if [ ! -d ${OUTPUT_HOME} ]; then
    mkdir ${OUTPUT_HOME}
fi
if [ ! -d ${LOG_ROOT} ]; then
    mkdir ${LOG_ROOT}
fi

echo -e "Starting havana monitor server $HOST_NAME ...\c"

LIB_JARS=${DEPLOY_HOME}/lib/*

CONFIG_DIR=${DEPLOY_HOME}/conf

nohup ${JAVA_HOME}/bin/java ${JAVA_OPTS}  -Ddubbo.registry.file=${DEPLOY_HOME}/dubbo-registry.properties -classpath  ${CONFIG_DIR}:${LIB_JARS} ${MAIN_CLASS} >> ${STDOUT_LOG} 2>&1 &

echo "OK!"

START_PIDS=`ps  --no-heading -C java -f --width 1000 | grep "$DEPLOY_HOME" |awk '{print $2}'`
cat /proc/${START_PIDS}/environ | tr '\0' '\n'
echo "PID: $START_PIDS"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值