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 ...
随机推荐
- CSS visibility 属性 使元素占位,但不可见
CSS visibility 属性 使元素占位,但不可见 h2 { visibility:hidden; } 浏览器支持 所有主流浏览器都支持 visibility 属性. 注释:任何的版本的 Int ...
- iOS9 Spotlight使用
1.Spotloight是什么? Spotlight在iOS9上做了一些新的改进, 也就是开放了一些新的API, 通过Core Spotlight Framework你可以在你的app中集成Spotl ...
- windows下,Qt Creator 中javascript调试器安装并使用
最开始使用Qt Creator时,想使用断点来调试javascript代码.但在按下debug键后,却提示调试器未配置,让我比较郁闷. 好了,郁闷的是说了,咱们来说说高兴的.要Qt Creator调试 ...
- iOS UILabel显示html标签
iOS7以后系统提供了显示html标签的方法 UIKIT_EXTERN NSString *const NSHTMLTextDocumentType NS_AVAILABLE_IOS(7_0); 直接 ...
- Have You Tried Delphi on Amazon Linux? (就是AWS用的Linux)
The new Delphi Linux compiler enables customers to take new or existing Windows server applications ...
- SkyDrive开发申请ClientID
申请地址: http://go.microsoft.com/fwlink/p/?LinkId=193157 注意:在创建完成一个你的应用实例后,有一个很重要的任务需要你去完成. 那就是在你创建的应用实 ...
- 在Window和Linux下使用Zthread库(跨平台高级面向对象的线性和sycnchronization 库)
ZThread库是一个开源的跨平台高级面向对象的线性和sycnchronization 库,以运行POSIX 和Win32 系统中的C++程序. ZThread库的主页:http://zthread. ...
- 【Qt】无边框窗体中带有ActiveX组件时的一个BUG
无意中发现的一个BUG,Qt5.1.1正式版首先创建一个GUI工程,拖入一个QAxWidget控件(为了使ActiveX生效,需要在.pro文件中加入CONFIG += qaxcontainer)接着 ...
- TextBox的Enable和ReadOnly属性的限制
在以前的ASP.NET 1.x版本中,设置为ReadOnly的TextBox控件在客户端更改了值后,在服务器端仍然可以得到修改后的值,但在ASP.NET 2.0中,这种做法已经限制.这是为了提高应用程 ...
- JavaScript-DOM续
一.路由的跳转 <body> <a href="#/course">课程</a> <a href="#/main"&g ...