博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat项目自动部署脚本
阅读量:5022 次
发布时间:2019-06-12

本文共 2183 字,大约阅读时间需要 7 分钟。

一般情况下使用的Linux环境都是加固的,root路径只有超级管理员权限才能进入。我们新建一个自己的用户,在/home下会有一个用户目录,传输war包都放在这个目录下,此时不动webapps文件下的内容,传输包的时候,项目不会中断。

如下是部署脚本deploy.sh:

#!/bin/bash#自动部署脚本#tomcat路径tomcatBinPath=/alidata/server/tomcat-7.0.54/bin#war包和脚本目录homepath=/home/baihuidong/DeployApplicationForTomcatecho '--------开始部署--------'#检查war包是否存在cd $homepathif [ $(find ./ -maxdepth 1 -name "*.war"|wc -l) -ne 1 ]; then    echo '请保证DeployApplicationForTomcat文件中有且只有一个war包!'    exit 1fi#进入tomcat目录cd $tomcatBinPathif [ $? -ne 0 ];then    echo '请检查tomcat的bin路径是否正确!'    exit 1fiecho "进入tomcat的bin目录:$tomcatBinPath"pid=$(ps -fu `whoami`|grep "$tomcatBinPath"|grep -v grep|awk '{print $2}')if [ -z "$pid" ];then    echo "相关tomcat进程已关闭:$pid"else    ./shutdown.sh    #停止tomcat服务    sleep 8    kill -9 $pid    echo '成功关闭tomcat服务!'fi#清空oldWarPackage目录cd $homepathif [ $? -ne 0 ];then    echo '请检查homepath路径是否正确或者是否有权限进入!'    exit 1fiif [ -d $homepath/oldWarPackage ];then    echo "oldWarPackage文件夹存在!"    rm -rf $homepath/oldWarPackage/*else    echo "oldWarPackage文件夹不存在!"    mkdir $homepath/oldWarPackageficd $tomcatBinPath/../webapps/if [ $? -ne 0 ];then    echo '请检查webapps路径是否正确!'    exit 1fiecho "进入webapps目录:$(pwd)"cp *.war $homepath/oldWarPackage/if [ $? -ne 0 ];then    echo '请检查webapps下是否有war包或者oldWarPackage目录是否存在!'    exit 1firm -rf *cp $homepath/*.war ./chown root:root *.warchmod 755 *.warcd $tomcatBinPath./startup.shecho '--------部署结束--------'

若部署中间出错,则使用回滚脚本

回滚脚本rollback.sh:

#!/bin/bash#回滚脚本#war包和脚本目录homepath=/home/baihuidong/DeployApplicationForTomcatcd $homepath/oldWarPackageif [ $(find ./ -maxdepth 1 -name "*.war"|wc -l) -ne 1 ]; then    echo '请保证oldWarPackage文件中有且只有一个war包!'    exit 1fiecho '------回滚开始------'cd ../rm -rf ./*.warcp ./oldWarPackage/*.war ././deploy.shecho '------回滚结束------'

其实这里的回滚脚本,是重新部署原war包的方案。还有一种方案,就是备份webapps路径下的war包和ROOT文件夹,回滚之后拷贝到webapps下,重启tomcat,这样省去了Tomcat解压war包的时间。

注意:

如果在Linux下使用vim命令编写脚本,需添加相关执行权限才能被执行(文件名变成绿色)。

如果在windows下编写的sh脚本,传到Linux上,需要增加相关执行权限,且需要格式转化

使用如下命令进行转换:

chmod 755 deploy.sh    //设置执行权限dos2unix deploy.sh    //格式转化busybox dos2unix deploy.sh    //如果提示dos2unix命令找不到,使用这条

还可以使用vim进行格式转化。具体看我的vim的文章。

转载于:https://www.cnblogs.com/MasterBai2018/p/9395526.html

你可能感兴趣的文章
http://lorempixel.com/ 可以快速产生假图
查看>>
工程经验总结之吹水"管理大境界"
查看>>
为什么JS动态生成的input标签在后台有时候没法获取到
查看>>
20189210 移动开发平台第六周作业
查看>>
java之hibernate之基于外键的双向一对一关联映射
查看>>
rxjs一句话描述一个操作符(1)
查看>>
第一次独立上手多线程高并发的项目的心路历程
查看>>
ServiceStack 介绍
查看>>
Centos7下载和安装教程
查看>>
无谓的通宵加班之后的思索
查看>>
S1的小成果:MyKTV系统
查看>>
从setting文件导包
查看>>
编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成...
查看>>
union和union all
查看>>
Github 开源:使用控制器操作 WinForm/WPF 控件( Sheng.Winform.Controls.Controller)
查看>>
PMD使用提醒
查看>>
Codeforces 887D Ratings and Reality Shows
查看>>
论文《A Generative Entity-Mention Model for Linking Entities with Knowledge Base》
查看>>
CentOS 6.7编译安装PHP 5.6
查看>>
Linux记录-salt分析
查看>>