jenkins 脚本配置

自动化部署脚本

在jenkins打包,部署之后运行的脚本,用来拷贝文件,关闭服务,启动服务,而且
支持spring boot 提供的 -srping-profiles-active 参数,启动不同的运行环境。


#!/bin/bash
# 写的参数说明
echo "usag ./server.sh"
echo "param1 remoteDirectory"
echo "param2 targetDirectory"
echo "param3 preFix of path"  
echo "param4 deplay uat|dev|prod, such as: uat or uat,dev "  
echo "param5 jar index, such as "0 1" , or "0". "
echo "index 0 is evaluation-service-0.0.1-SNAPSHOT.jar"
echo "index 1 is holding-service-0.0.1-SNAPSHOT.jar"
echo "index 2 is investment-service-0.0.1-SNAPSHOT.jar"
echo "index 3 is privilege-service-0.0.1-SNAPSHOT.jar"
echo "index 4 is third-party-0.0.1-SNAPSHOT.jar"
echo "index 5 is sockright-ui-0.0.1-SNAPSHOT.jar"

# 要启动的jar包的数组,防止自己写错。
jarNames=(
 evaluation-service-0.0.1-SNAPSHOT.jar
 holding-service-0.0.1-SNAPSHOT.jar
 investment-service-0.0.1-SNAPSHOT.jar
 privilege-service-0.0.1-SNAPSHOT.jar
 third-party-0.0.1-SNAPSHOT.jar
 sockright-ui-0.0.1-SNAPSHOT.jar
)
# 日志名称,和上面jar包名字一一对应。
logNames=(
 evaluation.log
 holding.log
 investment.log
 privilege.log
 third-party.log
 sockright-ui.log
)
# 要拷贝的文件的相对路径
fileNames=(
 evaluation-service/target/*.jar 
 holding-service/target/*.jar 
 investment-service/target/*.jar 
 privilege-service/target/*.jar 
 third-party/target/*.jar 
 sockright-ui/target/*.jar 
)
# 获取要输入的下标数组
indexArr=$5
# stop process 
function killProsess() { 
	NAME=$1
        PID=`ps aux | grep  $NAME | grep -v grep | awk '{print $2}'` 
        echo "jar name is: $NAME, pid: $PID" 
        kill -9 $PID 
} 
 #start jar  process,but you can change it to yours。
function start() { 
        NAME=$1 
        LOG=$2 
        TYPE=$3 
        echo "jar name is: $NAME, log name is: $LOG, deplay type is: $TYPE "
        nohup java -jar  $NAME --spring.profiles.active=$TYPE >>$LOG 2>&1 & 
} 

source /etc/profile
soucePath=$1
targetPath=$2/$3-$(date +%Y%m%d-%H%M%S)
mkdir -p $targetPath
echo '========================================='
echo '=========Staring copy files ============='
echo "source directory $1"
echo "target directory $targetPath"
cd $soucePath
# 开始拷贝
for i in ${indexArr[*]}; do
        echo ${fileNames[$i]}
	cp  ${fileNames[$i]} ~/$targetPath
done
echo '=========Ending copy files ============='
cd ~/$targetPath
echo `pwd`
#关闭进程
echo 'Kill ========================================='
for i in ${indexArr[*]}; do
	killProsess  ${jarNames[$i]} 
done
echo 'Killed ========================================='
#启动jar包
echo 'Starting ========================================='
for i in ${indexArr[*]}; do
	start  ${jarNames[$i]} ${logNames[$i]} $4
done
echo 'Started ========================================='
echo 'delete source directory $1"
rm -rf ~/$1
echo '=========Success start service ============='

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值