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 ...
随机推荐
- Vue 脚手架学习
首先就是安装脚手架 npm install @vue/cil -g 全局安装 在这里我遇到一个问题:安装不了脚手架,报错显示: 通过苦逼的查找原因就是 以前使用的taobao镜像 导致的,删除镜像换成 ...
- appium自动化测试(3)-控件定位&中文输入
参考-控件定位 http://www.2cto.com/kf/201410/340345.html appium接口 http://appium.io/slate/en/master/?python# ...
- jmeter之json提取器详解
Json提取器详解 *Apply to:参照正则表达式提取器 *Names of created:自定义变量名. 变量名可以填写多个,变量名之间使用分号进行分隔. 一旦变量名有多个,则下方的json ...
- GIT·全局配置文件及项目配置文件
阅文时长 | 0.03分钟 字数统计 | 48.8字符 主要内容 | 1.引言&背景 2.声明与参考资料 『GIT·全局配置文件及项目配置文件』 编写人 | SCscHero 编写时间 | 2 ...
- 【网络编程】TCPIP_1_快速入门
目录 前言 1. 快速入门 1.1 服务端编程简要步骤 1.2 客户端编程简要步骤 1.3 参考 前言 说明: demo 基于 Linux. 1. 快速入门 以下步骤简略了很多细节,但是通过下面的几个 ...
- Spring的@PropertySource注解使用
@PropertySource注解是Spring用于加载配置文件,默认支持.properties与.xml两种配置文件.@PropertySource属性如下: name:默认为空,不指定Spring ...
- (一)Linux之目录结构
Linux之目录结构 目录 Linux之目录结构 一.概述 一.基本介绍 二.具体的目录结构(不用背,知道即可) Linux /usr目录 Linux /var 目录 一.概述 学习 Linux,不仅 ...
- 【Python机器学习实战】决策树和集成学习(二)——决策树的实现
摘要:上一节对决策树的基本原理进行了梳理,本节主要根据其原理做一个逻辑的实现,然后调用sklearn的包实现决策树分类. 这里主要是对分类树的决策进行实现,算法采用ID3,即以信息增益作为划分标准进行 ...
- NOIP 模拟 $12\; \text{简单的填数}$
题解 一个纯的贪心,被我搞成 \(dp\) 了,最后把错解删掉了,骗了 \(10pts\) 考虑如何贪心,设置一种二元组 \((x,l)\),\(x\) 表示当前值,\(l\) 表示当前最长连续长度. ...
- 题解—P3000 [USACO10DEC]Cow Calisthenics G
做这题之前最好学会 "树形 \(dp\) 求树的直径"这一前缀知识(虽然我会但是我还是没想出来) 几乎想到要求直径这道题也没什么问题了(这不是废话吗,为什么题面里给了"直 ...