deploy() 函数中, [ ! -f ${UP_JARFILE} ] 与 nohup java -server 拆成两行 问题解决。
#!/bin/bash
# 当前时间
CUR_TIME=$(date "+%Y%m%d_%H%M%S")
# 源码编译目录(含dist)
DIST_DIR="$WORKSPACE"
DIR_TMP="$WORKSPACE_TMP"
#DIST_DIR="/var/lib/jenkins/workspace/xxx-cloud"
#DIR_TMP="/var/lib/jenkins/workspace/xxx-cloud@tmp"
# 部署服务器地址
UP_SVR_IP="192.168.5.175"
# 部署目录
UP_DIR="/opt/xxx"
# 上传jar文件a
UP_JARFILE="xxx-system-1.0.1.jar"
# 内存参数
MEM_OPTS="-Xms512m -Xmx512m -Xss1024K -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m"
#Encoding
ENCODING_PARAM="-Dfile.encoding=UTF-8"
# 删除并备份
bakfile(){
# 提示
echo "$UP_JARFILE 正在备份中..."
# 登录
ssh -Tq -o 'StrictHostKeyChecking=no' root@${UP_SVR_IP} << EOFBAK
# 判断目录
if [ ! -d $UP_DIR ];then
echo "${UP_DIR} is not exist"
mkdir -p ${UP_DIR}
exit 1
fi
# 判断文件
cd $UP_DIR
if [ ! -f ${UP_JARFILE} ];then
echo "${UP_JARFILE} is not exist"
exit 2
fi
# 备份
tar -czf ${UP_JARFILE}.${CUR_TIME}.tar.gz *.jar
# 删除
ls -lt |grep $UP_JARFILE |grep -v tar.gz |awk 'NR>1 {print \$NF}' | xargs rm -rf
# 保留10个版本
ls -lt |grep ${UP_JARFILE} |grep tar.gz |awk 'NR>10 {print \$NF}' |xargs rm -rf
# 提示
echo "$UP_JARFILE 备份已完成!"
EOFBAK
}
# 传输编译文件
upfile(){
# 删除临时文件
cd $DIR_TMP && ls -l |grep jar |awk '{print $NF}' |xargs rm -rf
# 拷贝到临时目录
find ${DIST_DIR} -name '*.jar' |grep -vE 'xxx-common|xxx-api' |xargs -i cp {} ${DIR_TMP}
# 传指定服务器
cd ${DIR_TMP} && echo "${UP_JARFILE} 正在等待上传,请稍后..."
[ -f ${UP_JARFILE} ] && scp -o StrictHostKeyChecking=no ${DIR_TMP}/${UP_JARFILE} root@${UP_SVR_IP}:${UP_DIR} &>/dev/null
# 检查
[ $? -eq 0 ] && echo "${UP_JARFILE} 已上传成功!"
}
# 部署
deploy() {
# 登录
ssh -Tq -o 'StrictHostKeyChecking=no' root@${UP_SVR_IP} << EOFSSH
cd $UP_DIR
# 查杀进程
ps -ef | grep ${UP_JARFILE} | grep -v grep | awk -F ' ' '{print \$2}' |xargs -r kill -9
if [ $? -eq 0 ]; then
echo "${UP_JARFILE} 已杀成功!"
else
echo "${UP_JARFILE} kill失败!"
fi
# 发布
[ ! -f ${UP_JARFILE} ] && echo "failure: ${UP_JARFILE} 包不存在,请检查上传情况!" && exit 1
nohup java -server $MEM_OPTS $ENCODING_PARAM -jar ${UP_DIR}/${UP_JARFILE} --spring.profiles.active=sit >/dev/null 2>&1 &
if [ $? -eq 0 ]; then
echo "${UP_JARFILE} 已发布成功!"
else
echo "${UP_JARFILE} 发布失败!"
fi
exit 0
EOFSSH
}
网友评论