tomcat快速发布备份脚本
一.说明
我们每次在tomcat中发布新war包,总是要经历【备份-停机-上传-启动】这几个部分,其中上传的环节和网速有极大相关性,要是网速很慢,那么整个发布的时间就会很长。
如果我们不借助于自动化发布工具,那么我们可以预先上传war包到指定目录,然后用shell脚本来完成【备份-停机-拷贝-启动】,将上传动作替换为拷贝动作,这样发布的时间就不依赖网速了。
二.目录结构
三.脚本
#!/bin/bash #检查所需文件 #判断war包是否存在 if [ ! -f "/home/ap/warDir/client.war" ];then echo "/home/ap/warDir/client.war不存在,请上传" exit fi #查找tomcat进程 tomcat_pid=`ps -ef | grep apache-tomcat-7.0.85 | grep -v grep | awk '{print $2}'` if [ "$tomcat_pid" == "" ];then echo "tomcat未运行" else ps -ef | grep apache-tomcat-7.0.85 | grep -v grep | awk '{print $2}' | xargs kill -9 echo "tomcat已停止" fi #清除tomcat缓存 rm -rf /home/ap/apache-tomcat-7.0.85/work/Catalina/localhost/* echo "清理tomcat缓存完成" #判断backup文件夹是否存在 if [ ! -d "/home/ap/apache-tomcat-7.0.85/backup/" ];then mkdir /home/ap/apache-tomcat-7.0.85/backup echo "backup文件夹创建成功" fi #备份文件 #cp前要加\,否则cp等同于cp -i,那么-f就不会生效了 \cp -f /home/ap/apache-tomcat-7.0.85/webapps/*.war /home/ap/apache-tomcat-7.0.85/backup echo "文件备份成功" #清除tomcat webapps目录 rm -rf /home/ap/apache-tomcat-7.0.85/webapps/* echo "清理webapps目录成功" #拷贝新war包到webapps目录 cp -f /home/ap/warDir/*.war /home/ap/apache-tomcat-7.0.85/webapps echo "新war包已拷贝至webapps目录" #启动tomcat cd /home/ap/apache-tomcat-7.0.85/bin echo "####################" echo "## 开始启动tomcat ##" echo "####################" ./startup.sh & tail -f ../logs/catalina.out
四.注意事项
1.清注意脚本中的各路径,需要替换成本机器的路径和环境信息
2.rm -rf 命令,最好写绝对路径,避免因为文件夹不存在造成把根目录删除了
3.可以根据需求,自定义更多的功能
五.其他
停止tomcat的脚本
ps -ef | grep apache-tomcat-7.0.85 | grep -v grep | awk '{print $2}' | xargs kill -9