Java之war包自动化发布脚本实现
#!/bin/sh
# 自动化发布脚本
##### 备份 开始 #####
echo "–备份开始–";
datename=$(date +%Y%m%d-%H%M%S);
mkdir -m 700 /usr/local/war/$datename;
cp -a -R /usr/local/apache-tomcat-9.0.17/webapps/FireFighting.war /usr/local/war/$datename;
echo "–备份成功–"
##### 停止服务 #####
echo "–开始停止服务–";
ps -ef|grep 'apache-tomcat-9.0.17'|grep -v grep|awk '{print $2}'|xargs kill -9;
echo "–停止服务成功—";
##### 删除原始文件 #####
echo "–删除原war包–";
rm -rf /usr/local/apache-tomcat-9.0.17/webapps/FireFighting*;
echo "–删除原war包成功–";
##### 复制新war包 #####
echo "–开始复制新war包–";
cp -a -R /usr/local/warNew/FireFighting.war /usr/local/apache-tomcat-9.0.17/webapps/;
echo "-复制新war包成功-";
##### 启动服务 #####
echo "–启动服务–";
echo "–启动server服务–";
sh /usr/local/apache-tomcat-9.0.17/bin/startup.sh;
echo "–启动server服务成功–";
##### 成功结束 #####
大致逻辑
- 需要我们手动将
war
包放置到/usr/local/warNew
目录内 - 执行
./AutomaticDeployment.sh
后会首先将项目原来的war
包备份到/usr/local/war/20190415xxxx
内 - 执行 停止
tomcat
服务 - 执行 删除原始
war
包 - 执行 复制新的
war
包 - 执行 启动
tomcat
服务
前期准备工作
- 创建war文件夹,用于存放备份的项目旧
war
包(mkdir /usr/local/war
) - 创建warNew文件夹用于存放我们最新的项目
war
包(mkdir /usr/local/warNew
) - 假定项目名为:
FireFighting
- 假定tomcat路径为:
/usr/local/apache-tomcat-9.0.17
实现步骤
- linux下保存文件为
AutomaticDeployment.sh
保存至目录/usr/local
cd
到.sh
文件所在目录(cd /usr/local
)- 给
.sh
文件添加x执行权限 (chmod u+x AutomaticDeployment.sh
) ./
执行.sh
文件(./AutomaticDeployment.sh
)