公司的开发环境每次替换war包时候,老是需要重新上传并且手动解压,然后再去重启tomcat。觉得这样子太麻烦了,于是写了一个shell脚本,自动解压+备份+tomcat自动关闭+启动。代码如下:

#关闭正在运行的tomcat

ps -ef | grep /home/tomcat/tomcat-mall-api-web/ | grep -v grep | awk '{print $2}'| sed -e "s/^/kill -9 /g" | sh -

#获取当前的目录

dirname=$(cd `dirname $0`; pwd)

#获取当前目录所有的war包

file=$dirname/*.war

#获取当前时间 格式 年月日 时分秒 用于生成文件夹做备份
datename=$(date +%Y%m%d-%H%M%S)

#创建备份文件夹
mkdir $dirname/$datename

#备份文件
mv $file $dirname/$datename

#删除以前war包解压的文件
rm -rf $dirname/index.jsp $dirname/WEB-INF $dirname/META-INF

#上传war包

rz

#加压war包到制定目录 (注意 jar -xvf **.jar不能解压到制定目录)
unzip $file -d $dirname/

#解压完成
echo "解压完成"

#调用启动  由于tomcat的目录和项目不在一个目录,因此需要一个启动脚本 并调用source ./afterupload.sh 或者. ./afterupload.sh 注意后者有一个空格 

source ./afterupload.sh

afterupload.sh内容:

cd /home/tomcat/tomcat-mall-api-web/bin
./startup.sh & tail -f ../logs/catalina.out

shell 脚本解压war包+备份+tomcat自动关闭+启动的更多相关文章

  1. linux解压war包的命令

    网上很多人说用jar包解压,但jar命令解压时不能指定目录,推荐使用unzip解压war包. 一.命令名: unzip 功 能说明:解压缩zip文 件 语 法:unzip [-cflptuvz][-a ...

  2. tomcat解压war包的一点例外

    我在项目的开发过程中,发现Tomcat解压war 的一点例外.        现象如下: 使用ANT工具把web应用程序打包为war文件.然后把war文件放到tomcat的webapps,让tomca ...

  3. jar 压缩 解压 war包

    Win+R 输入cmd进入命令行,进入到源码所在目录.所用工具,jdk自带的jar.exe 打包命令:jar -cvf xxx.war * 解包命令: jar -xvf xxx.war * 参数 说明 ...

  4. shell脚本解压多个jar包

    for m in "GATEWAY" "ORDER" "PAY"do cd /home/cpay/tomcat${m}/ROOT/WEB-I ...

  5. Linux下打包压缩war、解压war包和jar命令

    情景:把project_a文件夹下的文件打包成project.war 1. 打包 jar -cvf project.war /project_a 说明: -c 创建war包 -v 显示过程信息 -f ...

  6. unzip解压war包并覆盖

    unzip -o blog.war -d BLOG 参数: -o 不进行询问直接覆盖 -d 压缩文件解压到BLOG文件夹下 详细使用语法: unzip [-Z] [-opts[modifiers]] ...

  7. jar 解压war包到指定目录

    用 jar -xvf  .jar 命令默认解压到当前目录,想要解压到指定目录 需要使用unzip .jar -d 目录 如: unzip pay.war -d /home/zookeeper1/tes ...

  8. linux解压war包

    可以用unzip命令 unzip project.war -d project 这样就在当前目录下解压project.war到project目录里面,参数-d的意思是创建project目录 附:unz ...

  9. 使用jar打war包或解压war包

    进入Dos命令行,并到目标文件夹,如C:\Temp,待打包的内容在C:\Temp\Blog里,目标,把Blog里的相应文件打成war报 1.打包 C:\Temp\jar -cvf Blog.war . ...

随机推荐

  1. am335x uboot启动流程分析

    基本指令含义 .globl _start .globl指示告诉汇编器,_start这个符号要被链接器用到,所以要在目标文件的符号表中标记它是一个全局符号 b,bl b是不带返回的跳转  bl带返回的跳 ...

  2. ps(1)

    1,让图片放大放小不变:把图层转化为智能对象:去掉:智能对象栅格化 2.ctrl+u 快捷----->色相饱和度,(1)色相:调整颜色的冷暖:(2)饱和度:图片颜色的饱和,(3)明度:照片颜色从 ...

  3. overload_protect_config.txt

    overload_protection_switch=Y reject_uri_list= reject_request_percent=50 period_time=10 period_max_fa ...

  4. Oracle初始化数据库表空间、用户、表(索引、分区)等

    [oracle@bogon orcl]$ sqlplus sys/sys as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 8 ...

  5. JQ 输入框控制输入 - 键盘上事件

    <li style="width: 480px">限购数量  <input type="number" name="limitNum ...

  6. Fiddler模拟发送post请求

    fiddler在进行接口测试时,会模拟post请求,发送不同的请求参数,返回不同的结果,今天我们就来分享一下,怎么用Fiddler工具模拟post请求: 打开Fiddler工具,在右侧点击“compo ...

  7. Node.js中http-server的使用

    Node.js中http-server的使用 使用阿里的npm镜像 国外的npm太慢了.查看一下自己使用的源: npm config get registry 应该显示https://registry ...

  8. ImportError: cannot import name wordnet

    ubuntu安装好nltk,调用时,出现问题: 解决: Install Setuptools: http://pypi.python.org/pypi/setuptools Install Pip: ...

  9. 二叉树数组C++实现

    基本概念梳理 孩子:子结点 双亲:父节点 度:有多少个子结点 有序树:固定的排列的树 无序树:排列与顺序无关的树 二叉树:所有结点小于等于2的树 源代码:https://github.com/cjy5 ...

  10. 隐藏uitabbar的代码

    隐藏uitabbar的代码: /** *  隐藏UITabbar * *  @param hidden yes隐藏 */ - (void)hidesTabBar:(BOOL)hidden{ [UIVi ...