工作中经常需要把web项目打成war包之后部署到tomcat服务器上,每次更新时步骤比较类似,这里提供公共步骤,编写名为auto_deploy.sh的shell脚本,只需要传递两个参数即可自动完成部署操作。舒服!

参数1:要部署的工程名

参数2:要部署文件的路径

shell脚本如下:

 #传递参数 要部署的工程名 要部署文件目录路径
#!/bin/bash
#需要修改的地方 start--
#工程名
readonly project_name= #端口号
readonly port=
readonly xml_name=''
readonly sh_name=''
#需要修改的地方 end--
#今日时间 格式为 YYYYY_MM_DD_HH_MM
suffix=`date +%Y%m%d%H%M`
#要部署工程的名字
cur_project_name=$
#要部署文件目录路径
declare dir=$
echo "传入的参数为部署工程名:$cur_project_name 文件路径:$dir"
#备份后的名字
bk_project_name=${project_name}"_"${suffix}
echo ${bk_project_name}
#备份原工程
echo 'start---'
if [ -d /data/wwwroot/$project_name ];
then
sudo mv /data/wwwroot/$project_name /data/wwwroot/$bk_project_name
#拷贝待部署工程到wwwroot目录
sudo cp -rf ${dir}/$cur_project_name /data/wwwroot/
echo '拷贝over...'
#重命名新工程名
sudo mv /data/wwwroot/$cur_project_name /data/wwwroot/$project_name
echo '重命名over...'
#删除新工程class目录下除'cn'以外的文件
ls /data/wwwroot/$project_name/WEB-INF/classes/ |grep -v cn|xargs rm -rf {}
echo '清空新工程class下目录over...'
#拷贝原工程中class下除'cn'以外的目录到新工程对应目录中
cd /data/wwwroot/$bk_project_name/WEB-INF/classes/
ls|grep -v cn|xargs -i cp -rf {} /data/wwwroot/$project_name/WEB-INF/classes/
echo '添加class下目录over...'
#覆盖web.xml文件
sudo cp -rf /data/wwwroot/$bk_project_name/WEB-INF/web.xml /data/wwwroot/$project_name/WEB-INF/
echo '覆盖over...'
#查看原工程运行的进程id并kill
ps -ef|grep java|grep ${port}|grep ${xml_name}|grep -v grep|awk '{print "kill -9 " $2}' |sh
echo 'kill over...'
#进入tomcat的bin目录下面
cd /data/program/tomcat/bin/
sudo ./${sh_name}.sh start
echo 'end...'
else
echo '路径不存在'
fi

web工程自动部署(tomcat服务器)的更多相关文章

  1. IDEA Community(社区版) 使用Maven创建Web工程 并部署tomcat

    由于IDEA社区版(Community)无法直接New一个Web Appplication 所以要使用maven来创建 1.创建一个Project 2. 3. 4.这里在Properties中添加一个 ...

  2. idea创建web工程、配置tomcat及基本配置

    背景 现在许多人从eclipse转到idea了,小编也不例外.但是刚转初期还是有挺多不适应的,特总结了创建maven的web工程.配置tomcat服务器及基本配置.有了这些配置,上手idea也就跟ec ...

  3. 使用Maven自动部署Tomcat 6和Tomcat 7下Web应用

    使用Maven自动部署Tomcat 6和Tomcat 7下Web应用 开启Tomcat远程管理权限 在tomcat的config目录下的tomcat-users.xml文件, <role rol ...

  4. Eclipse中的Web项目自动部署到Tomcat的webapp目录下

    Eclipse中的Web项目自动部署到Tomcat   原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写 ...

  5. 二十二. 安装部署Tomcat服务器、使用Tomcat部署虚拟主机、使用Varnish加速Web

    web proxy web1 web2   1.安装部署Tomcat服务器 web1 1.1 使用RPM安装JDK环境 ]# yum -y install java-1.8.0-openjdk ]# ...

  6. 部署Tomcat服务器

    部署Tomcat服务器,具体内容如下: 1.安装部署JDK基础环境; 2.安装部署Tomcat服务器; 3.创建JSP测试页面,文件名为test.jsp,显示服务器当前时间. 然后客户机访问Web服务 ...

  7. 高级运维(四):Nginx常见问题处理、安装部署Tomcat服务器、使用Tomcat部署虚拟主机

    一.Nginx常见问题处理 目标: 本案例要求对Nginx服务器进行适当优化,以提升服务器的处理性能: 1> 不显示Nginx软件版本号 2> 如果客户端访问服务器提示“Too many ...

  8. 安装部署Tomcat服务器

                      安装部署Tomcat服务器 案例1:安装部署Tomcat服务器 案例2:使用Tomcat部署虚拟主机 案例3:使用Varnish加速Web 1案例1:安装部署Tom ...

  9. Jenkins自动部署Tomcat项目

    Jenkins自动部署Tomcat项目 1.安装jenkins 插件 启动Jenkins,进入系统管理-插件管理: 选择Deploy to container Plugin 插件安装:

随机推荐

  1. CSS之 absoulte 属性

    特性: absoulte 与 float 具有相同的特性:包裹性,与破坏性  absoulte 与 float 可以交替使用  不受 relative 限制的 absoulte 定位,行为表现上可以不 ...

  2. 从零开始教你封装自己的vue组件

    组件(component)是vue.js最强大的功能之一,它可以实现功能的复用,以及对其他逻辑的解耦.但经过一段时间的使用,我发现自己并没有在业务中发挥出组件的最大价值.相信很多刚开始使用vue的朋友 ...

  3. 使用Hexo+Github一步步搭建属于自己的博客(基础)

    前言:电脑系统为window 10专业版,64位 相关步骤: 1.安装Node.js和配置好Node.js环境,打开cmd命令行,成功界面如下 2.安装Git和配置好Git环境,安装成功的象征就是在电 ...

  4. 进程池与线程池(concurrent.futures)

    from concurrent.futures import ProcessPoolExecutor import os,time,random def task(n): print('%s is r ...

  5. javascript 之数据类型

    写在前面 国庆整理资料时,发现刚开始入门前端时学习JS 的资料,打算以一个基础入门博客记录下来,有不写不对的多多指教: 先推荐些书籍给需要的童鞋 <JavaScript 高级程序设计.pdf&g ...

  6. Entity Framework Core 2.0 使用入门

    一.前言 Entity Framework(后面简称EF)作为微软家的ORM,自然而然从.NET Framework延续到了.NET Core.以前我也嫌弃EF太重而不去使用它,但是EF Core(E ...

  7. 关于JavaScript日期类型处理的总结

    在任何一门开发语言中,对日期时间类型的处理,必不可少也非常重要,长期以来对于JS的日期类型处理较为苍白.在这里做一个浅显的总结. Date 对象用于处理日期和时间.Date 对象用于处理日期和时间.D ...

  8. SpringMVC 配置

    1.在WEB-INF\web.xml中定义前端控制器 <servlet> <servlet-name>springmvc</servlet-name> <se ...

  9. [Linux 使用(1)] SUSE Linux Enterprise Server 下虚拟机ip设置

    1.找到需要设置的地方 2.设置静态ip 下一步 3.编辑DNS 4.设置默认网关 5.查看ip 6.本机测试是否能够ping通

  10. clone对象

    在JavaScript中,当对象作为参数传给函数的时候,在函数内部对这个对象的属性进行修改时,函数外部的对象属性也会跟着被修改,而有些时候我们并不想原来的对象数据发生改变,这时候就需要切断对象之间的引 ...