Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300361
  • 博文数量: 103
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 858
  • 用 户 组: 普通用户
  • 注册时间: 2015-06-04 14:19
文章分类

全部博文(103)

文章存档

2016年(8)

2015年(95)

我的朋友

分类: Java

2015-07-01 10:42:57

动弹里求助了下如何自动更新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
#-----------------------------------------------------------------------------
阅读(1469) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~