supervisor更新jar程序的svn版本

利用maven(build) 下载最新jar包,supervisor重启服务更新svn版本

1、本脚本实现:第一次初始化新的svn版本时,创建新的脚本

vim creater_build.sh

#!/bin/bash
#  Jaua
#  Tue Jan 22 2019
#
read -p "Input svn Version Library Website:" url  #变量url为svn的版本库网址
pro=`echo ${url##*/}`

cd /data/build/
svn co ${url}

cd /data/bin/
cp -a build_TradeMember.sh build_${pro}.sh
sed -i "s/TradeMember/${pro}/" build_${pro}.sh
sed -i "s/http:\/\/172.16.1.253:3536\/gcard\/TradeMember/${url}/" build_${pro}.sh

bash build_${pro}.sh

本脚本实现:下载最新jar包或zip压缩包,过滤代码版本;然后把jar包或zip压缩包移动到supervisor的指定路径下;再重启服务后读取jar包是否能启动

vim build_TradeMember.sh

#!/bin/bash
#  Jaua
#  Tue Jan 22 2019
#
DT=`date +%Y%m%d%H%M%S`
project_name=TradeMember
workdir=/data/build/${project_name}
logdir=/data/logs/build
lication_path=/data/sites/${project_name}
bak_file=${project_name}.jar-${DT}
bak_dir=${project_name}-${DT}
backupdir=/data/backups/${project_name}.bak
pro_jar=${project_name}.jar
pro_zip=${project_name}.zip

if [ ! -d "$backupdir" ]; then
    mkdir -p "$backupdir"
fi
#cd /data/build/
#svn co http://172.16.1.253:3536/gcard/TradeMember

cd $workdir
svn_ver=`svn up|grep 'revision'| grep -Eo '[0-9]+'`

mvn clean install -Pat_test -B -Dmaven.test.skip=true -DskipTests > ${logdir}/${project_name}.log
build_status=`cat ${logdir}/${project_name}.log | grep "BUILD SUCCESS" | wc -l`
if [ ${build_status} -eq 1 ]; then
   echo "${build_file} ==> build from SVN code version ${svn_ver}." >> ${logdir}/build.log
   cd ${workdir}/target/
   file_jar=`ls |grep .jar`
   if [ $? == 0 ];then
      mv ${lication_path}/${pro_jar} ${backupdir}/${bak_file}
      mv ${workdir}/target/${pro_jar} ${lication_path}
      echo -e "\033[1;33m${file_jar}\033[0m"
   fi

   file_zip=`ls |grep .zip`
   if [ $? == 0 ];then
      cd /data/sites/
      mv ${project_name} ${backupdir}/${bak_dir}
      mv ${workdir}/target/${pro_zip} ./
      unzip ${pro_zip}
      mv ${pro_zip} ${backupdir}/${pro_zip}-${DT}
      echo -e "\033[1;33m${file_zip}\033[0m"
   fi
   supervisorctl restart ${project_name}
else
   echo -e "\033[1;31mBuild failed\033[0m"
   exit 1
fi

sleep 10
svn_version=`cat ${logdir}/build.log |tail -1`
stat=`supervisorctl status ${project_name}`
timeout=`supervisorctl status ${project_name} | awk -F"[ ]*|:" '{print $8}'`

if [ ${timeout} -ge 10 ];then
   echo -e "\033[1;32m${svn_version}\033[0m"
   echo "Project ${project_name} status:"
   echo -e "\033[1;32m${stat}\033[0m"
else
   echo -e "\033[1;31mState request timeout\033[0m"
fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值