Jenkins SSH publish.sh

本文详细介绍了一个自动化部署流程的脚本实现,包括环境变量加载、Java版本检查、目录切换、服务停止、备份创建、旧文件清理、新包解压及替换等关键步骤,适用于基于Java的后端服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

source /etc/profile;
java -version;
cd;
sh publish.sh eos-gsp-core-tm-server.zip eos-gsp-core-tm;

 

 

#!/bin/bash

#定义变量
packageName="$1"
projectName="$2"
backupPath=/home/appdeploy/bak
servicePath=/app/deploy/

#参数验证
if [ $# -lt 1 ]; then
  echo "you must use like this : ./publish.sh <packageName> <projectName>"    
  exit
fi

echo  "packageName is :${packageName}"
echo  "projectName is :${projectName}"


if [ ! -d ${backupPath} ];then
    echo  "new dir"
    mkdir -p ${backupPath}
fi

#删除10天之前的备份记录
find ${backupPath}/20* -type f -mtime +10 -print -exec rm -rf {} \;

#停止进程
ps -ef|grep -v grep|grep ${servicePath} | grep java |awk '{print "kill -9 "$2}'|sh
sleep 1

#备份目录
BAK_DIR=$backupPath/`date +%Y%m%d%H%M%S`
mkdir -p $BAK_DIR
cd ${servicePath}
#docker不支持zip命令
#zip -r ${packageName} conf lib && mv ${packageName} $BAK_DIR/
#这里用cp的话,下面会前置覆盖(强制覆盖,可能会存在不需要的依赖),最好mv
#cp -r conf lib $BAK_DIR/
mv -f conf lib $BAK_DIR/
#处理新包并替换文件
cd
cd ${projectName}
unzip -o ${packageName}
cp -rf lib ${servicePath}
cp -rf $backupPath/conf $servicePath

#删除解压文件
cd
cd ${projectName}
rm -rf *

#启动应用
cd
sh start_app.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值