公司的开发环境每次替换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函数超时情况应对总结

    最近处理一个线程中的函数超时问题. 函数里面有一个地方可能会卡死,我们需要去判断这个是不是卡死了,并做出相应的应对方案. 最开始想的是在函数上增加一个装饰器,使其在超时时抛出异常,然后在其他地方捕获这 ...

  2. Git命令之回退篇 git revert git reset

    Git command之回退篇 欲练回退 必先了解:HEAD.index.WorkingCopy HEAD: 当前所在的分支版本顶端的别名,也就是最新的一次commit. git commit 之后与 ...

  3. Java_方法的调用②及案例

    语法格式: 方法名称([参数列表]); //注意:只能调用本类的方法 案例: class Method01{ public static void print(){ for(int i = 1; i ...

  4. JAVA学习4:用Maven创建Struts2项目

    采用struts版本:struts-2.3.8 一.创建一个web项目 参考前面文章,项目名:maven-struts-demo. 二.配置pom.xml文件添加struts2依赖   <pro ...

  5. 收集整理mysql数据库设计规范与原则

    1. 数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;命名简洁明确(长度不能超过30个字符);例如:user, stat, log, 也可以wifi ...

  6. MySQL使用内置函数来进行模糊搜索(locate()等)

    常用的一共有4个方法,如下: 1. 使用locate()方法 1.1.普通用法: SELECT `column` from `table` where locate('keyword', `condi ...

  7. JQuery JSON Servlet

    <script type="text/javascript" src="js/jquery-1.10.2.js"></script> & ...

  8. Struts2拦截器和标签

    一.struts2拦截器 1.struts2是框架,封装了很多的功能,struts2里面封装的功能都是在拦截器里面. 2 struts2里面封装了很多的功能,有很多拦截器,不是每次这些拦截器都执行,每 ...

  9. vue-cli中使用stylus

      1.在package.json文件中写入依赖: "stylus-loader": "^2.5.0", "stylus": "0 ...

  10. 查找CPU使用率过高的线程

    1.在编写程序中有时候设置不恰当,休眠时间不够,一般情况下4核的电脑CPU使用率一直大于23%,8核的大于13%就有可能是这种情况 解决方法: 在VS查看并行线程利用CPU使用工具ProcessExp ...