公司的开发环境每次替换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. Python数据类型(字符串)

    文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform Python 字符串 字符串是 Python 中 ...

  2. JetBrains PyCharm(Professional版本)的下载、安装和初步使用

    不多说,直接上干货! 首先谈及这款软件,博主我用的理由:搞机器学习和深度学习! 想学习Python的同学们,在这里隆重介绍一款 Python 的开发工具 pyCharm IDE.这是我最喜欢的 Pyt ...

  3. 关于append,appendTo,prepend,prependTo的区别

    之前做项目对于这几个的方法总是有点模糊,尤其是prepend和prependTo; 1.append <style> span{ background:yellow; } .test{ b ...

  4. unity接入安卓sdk (unity调用安卓工程)

    1.安装jdk 并且配置环境,这个网上资料很多,这里不说了 2.安卓开发软件eclipse集成环境版 下载地址 http://tools.android-studio.org/index.php/ad ...

  5. ASP.NET能知道的东西

    ASP.NET能知道的东西 获取服务器电脑名: Page.Server.ManchineName 获取用户信息: Page.User 获取客户端电脑名:Page.Request.UserHostNam ...

  6. Java并发编程系列之二十八:CompletionService

    CompletionService简介 CompletionService与ExecutorService类似都可以用来执行线程池的任务,ExecutorService继承了Executor接口,而C ...

  7. .Net程序员玩转Android系列之一~Java快速入门

    前言 前段时间受公司业务发展需要,探索性进入Android开发领域.一切从零开始,java基础,Java进阶,Android框架学习,Eclipse熟悉,最终到第一个即时通讯App完成,历经一个月的时 ...

  8. 解决VS2010在新建实体数据模型出现“在 .NET Framework Data Provider for Microsoft SQL Server Compact 3.5 中发生错误。请与提供程序供应商联系以解决此问题。”的问题

    最近想试着学习ASP.NET MVC,在点击 添加--新建项--Visual C#下的数据中的ADO.NET 实体数据模型,到"选择您的数据连接"时,出现错误,"在 .N ...

  9. HTML语言中img标签的alt属性和title属性的作用与区别

    alt属性是在你的图片因为某种原因不能加载时在页面显示的提示信息,它会直接输出在原本加载图片的地方,而title属性是在你鼠标悬停在该图片上时显示一个小提示,鼠标离开就没有了,有点类似jQuery的h ...

  10. Nodejs学习笔记之复制文件

    前端童鞋都知道,javascript是没有权限操作磁盘文件的,server童鞋一向都很鄙视.但是nodejs可谓让咱们前端扬眉吐气啊,最近在学node,其强大的功能让人异常激动和兴奋.今天就学习了它怎 ...