部署tomcat项目的Shell脚本
来源:互联网 发布:android 防止sql注入 编辑:程序博客网 时间:2024/06/07 04:46
每次发布tomcat项目的时候都要反复敲一些命令,重启tomcat之前先检查tomcat进程有没有停掉,没有还要手动kill该进程,单独部署一个项目还好,如果一次多个部署,就比较费劲了。
所以,可以使用shell脚本。
把deploy.sh和restart.sh分别拷贝到3个tomcat的bin目录下,再用chmod +x给这两个脚本赋上可执行权限。
一键发布命令:./deploy.sh 项目war包 例如:./deploy.sh /home/test.war
说明:deploy.sh会先清空tomcat下的ROOT目录,再将指定的war包加压至ROOT目录,最后执行restart.sh重启tomcat。
代码如下:
#!/bin/shwar=$1bin=$(cd `dirname $0`; pwd)if [ ! -n "${war}" ]; then echo "***Usage: $0 [project.war]" exit 0fiif [ ! -f "${war}" ]; then echo "***Error: ${war} does not exist." exit 0fiif [ ! "${war##*.}" = "war" ]; then echo "***Error: ${war} is not a war file." exit 0fiecho "Deploy ${war##*/}..."rm -rf ${bin}/../webapps/ROOT/ && unzip -qo ${war} -d ${bin}/../webapps/ROOT/rm -rf ${bin}/../work/Catalina/localhost/echo "Restart tomcat..."exec ${bin}/restart.sh
如需重启tomcat则使用命令:./restart.sh 或 ./restart.sh -v (参数-v表示启动时打印tomcat启动日志)
说明:restart.sh是用来重启tomcat的,如果tomcat没有启动则直接启动,如果已经启动就先shutdown再启动,如果shutdown之后3s没有停掉tomcat进程,则kill掉原来的进程再启动。
代码如下:
#!/bin/shbin=$(cd `dirname $0`; pwd)pid=$(ps aux | grep tomcat | grep -v grep | grep -v restart | grep ${bin} | awk '{print $2}') if [ -n "${pid}" ]; then echo "Shutdown..." sh ${bin}/shutdown.sh sleep 3 pid=$(ps aux | grep tomcat | grep -v grep | grep -v restart | grep ${bin} | awk '{print $2}') if [ -n "${pid}" ]; then kill -9 ${pid} sleep 1 fifiecho "Startup..."sh ${bin}/startup.shif [ "$1" = "-v" ]; then tail -f ${bin}/../logs/catalina.outfi
本人用的是CentOS,3个tomcat分别在/opt/apache-tomcat-7.0.65/下的8080/8081/8082子目录下,监听8080/8081/8082端口。运行截图如下:
0 0
- 快速部署tomcat项目的Shell脚本
- 部署tomcat项目的Shell脚本
- Tomcat项目部署shell脚本
- shell的tomcat部署脚本
- Git下部署项目的shell脚本
- 自动化部署的shell脚本
- 使用shell自动部署tomcat项目
- shell脚本--部署应用到tomcat并启动tomcat
- CentOS上实现一键Maven打包并部署到Tomcat的Shell脚本
- shell脚本部署并启动tomcat(简单例子)
- linux服务器批量部署应用系统shell脚本(Tomcat/jetty)
- TOMCAT部署项目的方式
- TOMCAT部署项目的方式
- TOMCAT部署项目的方式
- tomcat部署项目的方式
- TOMCAT部署项目的方式
- TOMCAT部署项目的方式
- Tomcat部署项目的方式
- Ubuntu 安装Chromium浏览器并添加Flash插件Pepper Flash Player
- 关于部分手机的Edtitext光标样式问题
- Linux内存布局
- cocostudio label换行问题
- Android smalidea无源码调试
- 部署tomcat项目的Shell脚本
- code vs 3243 区间反转(线段树)
- 根级别上的数据无效第1行位置1
- php at(@)符号的用法简介
- clang static analyzer源码分析(五)
- Intellij导入子项目时,maven列表子项目灰色不可用---解决方法
- 利用AbstractRoutingDataSource+注解实现动态数据源切换
- nginx 配置实例
- 根据不同的解决方案修改mfc的启动界面