在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 ============='