惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
MyScale Blog
MyScale Blog
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky
Recent Announcements
Recent Announcements
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
The GitHub Blog
The GitHub Blog
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More

CAYZLH

Reasonix 开箱:聊聊我装的那些 Skill 收藏一份自驾中国的愿望清单 白夜行·谢幕 英雄联盟的昨日今天与符文大乱斗 折腾的尽头是极简 一个 `data.` 引发的血案——Redis 连接 localhost 问题排查全记录 MacBook上备忘录APP的快捷键和手势 让Google屏蔽某些搜索结果 WSL自定义安装Ubuntu typora自动上传图片配置 自建giscus服务 Windows下结束指定端口的进程 批量修改maven多模块版本号 使用winsw部署SpringBoot项目 Gson简易指南 docker搭建Consul集群 使用Docker部署SpringBoot项目 Docker使用redis镜像 Docker使用rabbitmq Docker使用zookeeper Docker使用MySQL Dockerfile常用指令 Docker免sudo操作 雷鸟电视去广告 使用ADB卸载MIUI系统应用 利用GitHub做图床 将网站变成灰色 Github上传大文件 Android远程调试命令adb vscode快捷键的使用
SpringBoot自动部署脚本
Ant丶 · 2022-10-20 · via CAYZLH

SpringBoot自动部署脚本,可用于jenkins

#!/bin/bash
# description:springboot 自动部署 1.0版本
# version 1.0
show_usage="args: [-t]\[--deploy-type=]"
#版本部署路径
mainpath=/data/service/youAppDir

# 应用名称
appName=yourAppName

#主函数
function deploy()
{
cd ${mainpath}
echo "[info]start deploy...[$(date +'%F %H:%M:%S')]"
stop
backup
upload
start
}

#启动app
function stop(){


echo `ps -ef | grep ${appName} | grep -v 'grep' | grep -v 'deploy'|awk '{print $2}' `;

PIDCOUNT=`ps -ef | grep ${appName} | grep -v 'grep' | grep -v 'deploy' | awk '{print $2}' | wc -l`;


echo "stopping pid count:$PIDCOUNT"
if [ ${PIDCOUNT} -gt 0 ];then
{
# 获取进程ID
appID=$(ps -ef | grep ${appName} | grep -v 'grep' | grep -v 'deploy' | awk '{print $2}')
echo "[info]当前进程ID为:$appID"
kill -9 $appID
} || {
echo "[info]进程ID为:$appID停止异常"
}
fi
echo "stoped pid:$appID"

}

#启动app
function start(){

echo "starting $appName.jar"
nohup java -jar -Dspring.profiles.active=test -Xms128m -Xmx512m $mainpath/$appName.jar > /dev/null 2>&1 &

echo "success started $appName.jar"
}
#上传文件
function upload(){
echo "uploading $mainpath/${appName}.jar"
cp $mainpath/respo/${appName}.jar $mainpath/${appName}.jar
}

#版本回滚
deploy_Rollback()
{
#进入备份文件夹
cd ${mainpath}/backup/
#获取最新备份文件
file_name_new=''
for i in `ls -tr`;
do
echo $i;
file_name_new=$i;
done;
#将备份文件复制到webapps
cp ${mainpath}/backup/${file_name_new} ${mainpath}/${appName}.jar
if [ $? -eq 0 ]
then
echo 复制${file_name_new}成功
else
echo 复制失败,退出!
exit 1
fi
#进入webapps/目录
cd ${mainpath}
#重启App
stop
start
}

#备份原来的项目
function backup()
{
echo "开始备份to${mainpath}...."
fileDate=$(date "+%Y%m%d%H%M%S")
fileName=${appName}${fileDate}
mv $mainpath/${appName}.jar $mainpath/backup/${fileName}.jar
}

echo --------欢迎使用shell自动部署脚本--------
#获取用户操作
case $wm2 in
rollback)
deploy_Rollback
;;
*)
deploy
;;
esac