tomcat一键发布
1. 场景描述
linux下tomcat一键发布,包含停用服务、删除war包、拷贝war包及备份、重启服务等,以前的版本还包含svn更新及打包,后来在生产上怕出问题,改成本地打war包后,ftp上传到指定目录的方式。
2. 解决方案
2.1 真实代码
文件名称做了隐藏更改处理,修改文件路径后可使用。
#!/bin/sh
#1
instance="apache-tomcat-8.0.53";
tomcat_progrm="/home/laowang/programs/apache-tomcat-8.0.53";
target_home="/home/laowang/programs/dist";
target_home_back="/home/laowang/programs/dist/back";
function running(){
b=""
for ((i=0;i<=100;i+=2))
do
printf "progress:[%-50s]%d%%\r" $b $i
sleep 0.2
b=#$b
done
echo
}
#2
pid=`(ps -ef | grep $tomcat_progrm | grep -v "grep") | awk '{print $2}'`
kill -9 $pid
running ;
ps aux | grep $instance | grep -v grep;
#3
rm -rf ${tomcat_progrm}/webapps/laowang* ;
#4
mkdir ${target_home_back}/$(date +%Y%m%d%H%M%S)
cp ${target_home}/*.war ${target_home_back}/$(date +%Y%m%d%H%M%S)/
cp ${target_home}/*.war ${tomcat_progrm}/webapps/laowang-web.war
echo ${tomcat_progrm}/bin/startup.sh ;
#5
nohup ${tomcat_progrm}/bin/startup.sh;
running;
#6
tail -f ${tomcat_progrm}/logs/catalina.out ;
2.2 代码说明
2.2.1 定义变量
三个变量分别为tomcat解压目录,tomcat的war包是上传目录(可以任意定,只要有操作权限就行)、tomcat的war包子目录,备份用,也可以自己定义。
#1
instance="apache-tomcat-8.0.53";
tomcat_progrm="/home/laowang/programs/apache-tomcat-8.0.53";
target_home="/home/laowang/programs/dist";
target_home_back="/home/laowang/programs/dist/back";
2.2.2 查找现有tomcat进程并停用掉。
#2
pid=`(ps -ef | grep $tomcat_progrm | grep -v "grep") | awk '{print $2}'`
kill -9 $pid
running ;
ps aux | grep $instance | grep -v grep;
2.2.3 删除tomcat下历史war包
#3
rm -rf ${tomcat_progrm}/webapps/laowang* ;
2.2.4 新建备份文件夹,备份最新war包,并将最新war拷贝到tomcat的启动目录(webapps)
#4
mkdir ${target_home_back}/$(date +%Y%m%d%H%M%S)
cp ${target_home}/*.war ${target_home_back}/$(date +%Y%m%d%H%M%S)/
cp ${target_home}/*.war ${tomcat_progrm}/webapps/laowang-web.war
echo ${tomcat_progrm}/bin/startup.sh ;
2.2.5 启动tomcat服务
#5
nohup ${tomcat_progrm}/bin/startup.sh;
2.2.6 实时查看下日志,检验是否有错误。
#6
tail -f ${tomcat_progrm}/logs/catalina.out ;
2.3 最后说明
假如根据日志看没啥问题,或者有信心没问题,可直接按ctrl+c退出。
tomcat一键发布的更多相关文章
- Jenkins+tomcat自动发布的热部署/重启及遇到的坑解决办法
一.背景 公司的项目一直手动maven打包.上传服务器.关闭/开启tomcat,整个流程下来耗时耗力,虽然可以将所有流程通过shell脚本一次性解决,但如果可以通过idea的Jenkins插件一键自动 ...
- 使用expect脚本语言写一键发布服务(代码发布、所有服务重启)
互联网服务有很多台服务,但是在上线的时候需要将这些服务版本都更新与个个都重启,下面的脚本语言,就是一键发布服务~ 1.在/home/weihu/deploy/ 目录下建下publish .publis ...
- 一键发布ASP.NET Web安装程序
转载自:http://www.cnblogs.com/nangong/p/Web.html 前言:最近公司有个Web要发布,但是以前都是由实施到甲方去发布,配置,这几天有点闲,同事让我搞 ...
- eclipse下修改项目名导致tomcat内发布名不一致的解决方法 .
eclipse下修改项目名导致tomcat内发布名不一致的解决方法 . ------------------------------------------------------- 解决方案: 直接 ...
- Tomcat部署发布JSP应用程序的三种方法 (转)
Tomcat部署发布JSP应用程序的三种方法 1.直接放到Webapps目录下 Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应 ...
- [原创*精华]一键发布ASP.NET Web安装程序,搞WebForm的童鞋看过来...
重要更新:鉴于很多小伙伴们说看不到图,我这边换了几个浏览器看了下,都看得到的,估计是网速问题,请耐心等待,另外,为了更好的方便大家学习,特此提供源码以及一个word文档,word文档就是本 ...
- Tomcat 服务器及使用Eclipse绑定Tomcat并发布应用
一.简介 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公司及个人共同开发而成 ...
- 一键发布部署vs插件[AntDeploy]开源了
deploy to remote server by one button click 功能 支持docker一键部署(支持netcore) 支持iis一键部署(支持netcore和framework ...
- netcore开发windows普通服务(非Web)并一键发布到服务器
如何开发并一键发布WindowsService项目(netcore普通项目) netcore下开发windows服务如果是web项目的话,由于aspnetcore本身是支持的,把默认的host.Run ...
随机推荐
- xadmin 无法创建xadmin_log 或者是xadmin源代码使用,没有引用xadmin包报错或 1146, "Table 'mxonline.xadmin_log' doesn't exist"
解决方案: 第一步:将xadmin所在的目录为source_root 第二步:在settings.py中引用xadmin所在的目录 第三步makemigrations和migrate 引起原因:主语是 ...
- .Net Core 中使用PetaPoco ,T4生成模版
话不多说,直接上源码. 1.引用NuGet 2.添加T4 <#@ template debug="true" hostspecific="false" l ...
- 新浪API登录实例
步骤一:添加网站 进入新浪微博开放平台,http://open.weibo.com/apps 进入“管理中心“,点击”创建应用”,选择“网页应用”,填写相应的信息后提交. 步骤二:Oauth2.0授权 ...
- Win8Metro(C#)数字图像处理--2.32图像曝光算法
原文:Win8Metro(C#)数字图像处理--2.32图像曝光算法 [函数名称] 图像曝光函数ExposureProcess(WriteableBitmap src,int exposureV ...
- 零元学Expression Blend 4 - Chapter 16 用实例了解互动控制项「Button」II
原文:零元学Expression Blend 4 - Chapter 16 用实例了解互动控制项「Button」II 本章将教大家如何制作自己的Button,并以玻璃质感Button为实作案例. ? ...
- redis的简介和使用
简介 redis(Remote Dictionary Server)是一种Nosql技术,它是一个开源的高级kv存储和数据结构存储系统,它经常被拿来和Memcached相比较,但是Memcached不 ...
- mysql8解压版安装
1.下载 下载mysql8 2.安装 ① 解压到需要安装的目录,然后新建一个my.ini(位于解压目录下,与bin目录在同一个目录下) # For advice on how to change se ...
- WCF研究-中篇
中篇 5.托管于宿主 6.消息模式 7.WCF行为-实例管理和并发控制 8.安全 5.托管于宿主 托管 宿主Host Ø承载WCF Service运行的环境 自承载方式 系统服务方式 IIS方式 WA ...
- CMD 从文件中截取匹配规则字符串并输出到文件
*******************command**********************git diff 8d71d92b2d957fd1b697b4cf785fb984f190e5d2 or ...
- netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源
AntMgr https://github.com/yuzd/AntMgr 基于netcore2.0 mvc 开发的 快速搭建具有如下特色的后台管理系统 特色: 用户管理 菜单管理 角色管理 权限管理 ...