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 ...
随机推荐
- TCP三次握手、四次挥手理解
tcp三次握手建立连接第一次握手 客户端发送给服务器一段连接请求报文,等待服务器回应 第二次握手 服务器收到报文,并发送给客户端一个确认报文,等待客户端回应 第三次握手 客户端收到新报文 ,再发送给服 ...
- 2021字节跳动校招秋招算法面试真题解题报告--leetcode206 反转链表,内含7种语言答案
206.反转链表 1.题目描述 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1-> ...
- C++ 继承方式 与 普通方式 对比
1 //C++ 继承 2 //继承是面向对象三大特性之一 3 4 #include <iostream> 5 #include <string> 6 using namespa ...
- 用 getchar putchar 来输入和接收 但是要清空缓冲区
1 //用 getchar putchar 来输入和接收 但是要清空缓冲区 2 3 #include <stdio.h> 4 int main() 5 { 6 char ch1,ch2; ...
- MongoDB-03-分片集群
分片集群(Sharding Cluster) 架构图 规划 10个实例:38017-38026 1 configserver:38018-38020 3台构成的复制集(1主两从,不支持arbiter) ...
- 适配Android4.4~Android11,调用系统相机,系统相册,系统图片裁剪,转换文件(对图片进行上传等操作)
前言 最近Android对于文件的许多方法进行了修改,网络上又没有对Android4到Android11关于系统相机.系统相册和系统裁剪的适配方案,我花了几天事件总结了一下,先上源码 DEMO源码 先 ...
- 【Vulnhub】DC-1靶机
一.信息收集 1.1 环境 kali : 192.168.124.141 DC-1 : 192.168.124.150 1.2 nmap进行扫描 :nmap -sV 192.168.124.150 I ...
- Elasticsearch之深入理解
@ 目录 ES应用场景 ES应用场景举例 应用场景思考 ES和其他数据库对比 ES架构 Gateway Lucene 数据处理 发现机制与脚本 Transport REST full API ES中集 ...
- Node + Selenium 报错 UnhandledPromiseRejectionWarning: Error: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:5319
安装selenium-webdriver npm i selenium-webdriver 当前安装版本: "selenium-webdriver": "^4.0.0-a ...
- Linux放大缩小字体的快捷键
linux终端窗口字体缩放快捷键 环境:linux, 打开终端, 'ctrl' + '-'字体缩小,一行显示更多的内容 'ctrl' + 'shift' + '+'字体变大 ctl+shift+(+) ...