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
tomcat快速发布备份脚本的更多相关文章
- 大型项目linux自动化版本发布脚本(shell)之tomcat、nginx服务脚本
开发十年,就只剩下这套Java开发体系了 >>> 最近,又临近博主所负责的一个大型项目的发版了.之前有提到过,该项目涉及到30-40台服务器的发版.且项目客户规定发版需在晚上10 ...
- Tomcat 快速入门
Tomcat 快速入门 版本说明 本文使用 Tomcat 版本为 Tomcat 8.5.24. Tomcat 8.5 要求 JDK 版本为 1.7 以上. 简介 Tomcat 是什么 Tomcat 是 ...
- 【转】Tomcat 快速入门
本文转载自:https://www.cnblogs.com/jingmoxukong/p/8258837.html?utm_source=gold_browser_extension 目录 Tomca ...
- 使用 flow.ci 快速发布你的项目文档
软件研发的协作过程中,文档是必不可少的一环,有需求文档.接口文档.使用文档等等.当开始写文档时,首先会遇到两个问题: team members 之间如何协作? 文档 OK 后如何分发,去哪里看?如何更 ...
- oracle备份脚本
利用EXP导出全库,必须用SYSTEM或者DBA用户来导出. 具体脚本实现如下 全库导出(fullbackup): #!/bin/bash bname=`date +%Y%m%d` cd /backu ...
- Tomcat 服务器及使用Eclipse绑定Tomcat并发布应用
一.简介 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公司及个人共同开发而成 ...
- Mysqldump备份说明及数据库备份脚本分享-运维笔记
MySQLdump是MySQL自带的导出数据工具,即mysql数据库中备份工具,用于将MySQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中.Mysqldump是一个客户端逻辑备份的工 ...
- 让你快速学会Shell脚本
Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合.Shell可以直接使用在win/Unix/Linux上面, ...
- Tomcat学习(一)——使用Eclipse绑定Tomcat并发布应用
1.下载Tomcat 官网地址:http://tomcat.apache.org/whichversion.html 2.目录结构 bin:脚本目录 启动脚本:startup.bat 停止脚本:shu ...
随机推荐
- (11)MySQL进阶篇SQL优化(InnoDB锁问题排查与解决)
1.概述 前面章节之所以介绍那么多锁的知识点和示例,其实最终目的就是为了排查与解决死锁的问题,下面我们把之前学过锁知识重温与补充一遍,然后再通过例子演示下如果排查与解决死锁. 2.前期准备 ●数据库事 ...
- MIPS Pwn赛题学习
MIPS Pwn writeup Mplogin 静态分析 mips pwn入门题. mips pwn查找gadget使用IDA mipsrop这个插件,兼容IDA 6.x和IDA 7.x,在ID ...
- 花1个月时间准备 面试华为,薪资和定级都谈好了却被拒,HR竟说......
说在前面,千万不要频繁跳槽. 本来华为很想去的,面试前花了一个月的时间准备,面试过程挺顺利的,也拒绝了其他的所有面试邀请,而我拒绝其他面试邀请的底气,则是之前面试过程中的良好表现,薪资和定级都谈好了. ...
- c++ 跨平台线程同步对象那些事儿——基于 ace
前言 ACE (Adaptive Communication Environment) 是早年间很火的一个 c++ 开源通讯框架,当时 c++ 的库比较少,以至于谈 c++ 网络通讯就绕不开 ACE, ...
- repeatedly function in Clojure
user=> (doc repeatedly) clojure.core/repeatedly ([f] [n f]) Takes a function of no args, presumab ...
- Java程序设计(2021春)——第四章接口与多态课后题(选择题+编程题)答案与详解
Java程序设计(2021春)--第四章接口与多态课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第四章接口与多态课后题(选择题+编程题)答案与详解 第四章选择题 4.0 ...
- 基于AOP和HashMap原理学习,开发Mysql分库分表路由组件!
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 什么?Java 面试就像造火箭 单纯了! 以前我也一直想 Java 面试就好好面试呗 ...
- Sqli-Labs less13-16
less-13 首先,输入用户名和密码,发现只有成功和失败两种显示,没有数据回显: 然后我们抓包拿到数据: 我们通过上述观察,已经知道这是典型的盲注,可以采用布尔盲注或者时间盲注. 构造注入语句:un ...
- 面对对象4 Mixins机制 内置方法 反射 异常
Mixins机制 为什么要有:子类继承父类的时候,可能会碰到需要继承多个父类的情况,那么继承关系也分主类和辅类,既保持主类的功能,也有辅类的功能. 命名方式,我们需要将主类和辅类区分开来,python ...
- Python数学建模系列(一):规划问题之线性规划
@ 目录 前言 线性规划 样例1:求解下列线性规划问题 scipy库求解 样例2:求解下列线性规划问题 pulp库求解 样例3.运输问题 说明 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文 ...