Shell按日期备份、Git拉取代码打包部署

#!/bin/bash

# jar文件位置
jarPath="/data/api"
# 拉取源代码存放的位置
originCode="/data/api/originCode"
# 备份jar文件位置
backPath="/data/api/back"
# 按时间区分
data=`date +"%Y-%m-%d-%H:%M:%S"`
# 项目端口
port=8081

echo "=====================创建备份文件路径============"
if [ ! -d ${backPath} ];then
  mkdir -p ${backPath}
else
  echo "备份文件路径已存在"
fi;

echo "=====================备份jar====================="
cd ${jarPath}
mv api-0.1.jar ${backPath}/api-0.1.${data}.jar
echo "=====================备份jar成功================="

echo "=====================创建源代码目录,如果不存在==="
if [ ! -d ${originCode} ];then
  mkdir -p ${originCode}
else
  echo "源代码目录已存在"
fi;

## 从git拉取代码
echo "=====================拉取新代码=================="
cd ${originCode}
git pull
echo "=====================拉取成功====================="

## 构筑项目
echo "=====================打包中======================="
cd ${originCode}
mvn clean install -Dmaven.test.skip=true
echo "=====================打包完成====================="

echo "=====================移动jar包到jarPath目录下====="
cd ${originCode}/api/target
mv api-0.1.jar ${jarPath}

echo "=====================停止项目,准备启动...========="
cd ${jarPath}
#根据端口号查询对应的pid pid
=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }'); #杀掉对应的进程,如果pid不存在,则不执行 if [ -n "$pid" ]; then kill -9 $pid; fi sleep 1s echo "=====================启动项目=====================" java -jar .jar api-0.1.jar >/opt/logs/api/catalina.out 2>&1 &
原文地址:https://www.cnblogs.com/wangfajun/p/14755196.html