shell实现自动更新java web项目到Tomcat

本文介绍了一个用于自动更新Java Web项目的Shell脚本,该脚本适用于Linux环境,通过定时任务实现项目更新。脚本包含备份、停止Tomcat、更新文件、设置资源限制和重新启动Tomcat等关键步骤。

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

动弹里求助了下如何自动更新java web项目到Tomcat,经过经验和大佬们的说法,感觉tomcat手动重启更新是必须的了,reloadable = true方式不太可靠,也有过tomcat自己关不掉的时候就不能成功更新,而且项目上线以后,不能随时的更新类到项目了,但是还有很多bug需要修复,基本要求每天更新一次,要选在用户量最少的时间段更新,我去,这不是坑爹嘛,你们都回家休息了,我得早来或晚走更新项目,还不多给工资,所以写了个自动更新的shell脚本。
首先你必须把要更新的文件准备好,我的是放在/home/shop/cc/下。脚本很简单,不喜勿喷

忘说了,在linux下用crontab设置定时任务,脚本在root用户下运行才好使。

#!/bin/sh
#-----------------------------------------------------------------------------
#备份
#-----------------------------------------------------------------------------
file=$(date '+%m-%d')
#备份class文件
echo $(date) 备份/opt/wwwroot/WEB-INF/下的文件
cd /opt/backups/
mkdir $file
cd $file
cp /opt/wwwroot/WEB-INF/ . -r
#-----------------------------------------------------------------------------
#更新
#-----------------------------------------------------------------------------
#停止tomcat
echo $(date) 关闭tomcat
cd /opt/apache-tomcat-6.0.36/bin/
./shutdown.sh
echo tomcat停止运行
#判断Tomcat是否已经停止工作
echo $(date) 判断tomcat是否停止工作,如果没有,则间隔一段时间后强制关闭
int=0
while (($int < 5))
do
 pid=$(ps aux|grep tomcat-|grep -v grep|awk '{print $2}')
 if ["$pid"=""]
then
 echo $pid 不存在
int=5
else
 echo $pid 存在,休息20s
 let"int++"
 sleep 20s
 if ["$int"="4"]
then
 echo $(date) 强制关闭tomcat
 kill -9 $pid
fi
fi
done
#备份log日志
echo $(date) 备份log日志
cd /opt/apache-tomcat-6.0.36/logs/
mv catalina.out catalina-$file.out
#拷贝更新文件
echo $(date) 把更新文件拷贝到运行目录
cd /home/shop/cc/
cp * /opt/wwwroot/ -r
#设置ulimit -n 65000
echo $(date) 设置ulimit
cd /opt/apache-tomcat-6.0.36/bin/
ulimit -n 65000
#启动
echo $(date) 启动tomcat
./startup.sh
#-----------------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值