Tomcat项目自动部署脚本
一般情况下使用的Linux环境都是加固的,root路径只有超级管理员权限才能进入。我们新建一个自己的用户,在/home下会有一个用户目录,传输war包都放在这个目录下,此时不动webapps文件下的内容,传输包的时候,项目不会中断。
如下是部署脚本deploy.sh:
#!/bin/bash
#自动部署脚本 #tomcat路径
tomcatBinPath=/alidata/server/tomcat-7.0./bin
#war包和脚本目录
homepath=/home/baihuidong/DeployApplicationForTomcat echo '--------开始部署--------' #检查war包是否存在
cd $homepath
if [ $(find ./ -maxdepth -name "*.war"|wc -l) -ne ]; then
echo '请保证DeployApplicationForTomcat文件中有且只有一个war包!'
exit
fi #进入tomcat目录
cd $tomcatBinPath
if [ $? -ne ];then
echo '请检查tomcat的bin路径是否正确!'
exit
fi
echo "进入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
kill - $pid
echo '成功关闭tomcat服务!'
fi #清空oldWarPackage目录
cd $homepath
if [ $? -ne ];then
echo '请检查homepath路径是否正确或者是否有权限进入!'
exit
fi if [ -d $homepath/oldWarPackage ];then
echo "oldWarPackage文件夹存在!"
rm -rf $homepath/oldWarPackage/*
else
echo "oldWarPackage文件夹不存在!"
mkdir $homepath/oldWarPackage
fi cd $tomcatBinPath/../webapps/
if [ $? -ne 0 ];then
echo '请检查webapps路径是否正确!'
exit 1
fi
echo "进入webapps目录:$(pwd)" cp *.war $homepath/oldWarPackage/
if [ $? -ne 0 ];then
echo '请检查webapps下是否有war包或者oldWarPackage目录是否存在!'
exit
fi rm -rf *
cp $homepath/*.war ./ chown root:root *.war
chmod 755 *.war cd $tomcatBinPath
./startup.sh echo '--------部署结束--------'
若部署中间出错,则使用回滚脚本
回滚脚本rollback.sh:
#!/bin/bash
#回滚脚本 #war包和脚本目录
homepath=/home/baihuidong/DeployApplicationForTomcat cd $homepath/oldWarPackage
if [ $(find ./ -maxdepth -name "*.war"|wc -l) -ne ]; then
echo '请保证oldWarPackage文件中有且只有一个war包!'
exit
fi echo '------回滚开始------'
cd ../
rm -rf ./*.war
cp ./oldWarPackage/*.war ./
./deploy.sh
echo '------回滚结束------'
其实这里的回滚脚本,是重新部署原war包的方案。还有一种方案,就是备份webapps路径下的war包和ROOT文件夹,回滚之后拷贝到webapps下,重启tomcat,这样省去了Tomcat解压war包的时间。
注意:
如果在Linux下使用vim命令编写脚本,需添加相关执行权限才能被执行(文件名变成绿色)。
如果在windows下编写的sh脚本,传到Linux上,需要增加相关执行权限,且需要格式转化
使用如下命令进行转换:
chmod deploy.sh //设置执行权限
dos2unix deploy.sh //格式转化
busybox dos2unix deploy.sh //如果提示dos2unix命令找不到,使用这条
还可以使用vim进行格式转化。具体看我的vim的文章。
Tomcat项目自动部署脚本的更多相关文章
- myeclipse + tomcat 项目自动部署
在MyEclipse中设置项目的自动部署需要综合考虑两个方面: 1是MyEclipse本身,通过主菜单中project->auto ,另一个就是tomcat配置文件.配置文件包括 conf 下的 ...
- linux 项目自动部署脚本
1.使用maven获取源码部署,并可替换配置文件(金融数据分析平台) #!/bin/bash#设置变量cd /home#停止tomcatecho "开始停止tomcat..." p ...
- 【Shell学习笔记3》实践项目自动部署脚本】shell中获取返回值、获取当前sh文件路径
原创部分: 1.获取返回值 #This is a shell to Deploy Project #!/bin/bashcheck_results=`ps -ef | grep "java& ...
- Eclipse中的Web项目自动部署到Tomcat
原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写博客,现在感觉还是很有必要的,编程中每个人对于犯过的错误 ...
- [转]Eclipse中的Web项目自动部署到Tomcat
原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的 ...
- Eclipse中WEB项目自动部署到Tomcat
原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写博客,现在感觉还是很有必要的,编程中每个人对于犯过的错误 ...
- Eclipse中的Web项目自动部署到Tomcat(转)
转自:http://www.cnblogs.com/ywl925/p/3815173.html 问题: 这里就有个问题,是怎么把Eclipse中的网站项目自动部署到tomcat中.在Eclipse中做 ...
- ant+svn+tomcat实现项目自动部署
因工作需要,研究并实现了 ant+svn+tomcat实现项目自动部署,其中参考了下面文章:http://www.cnblogs.com/taoweiji/p/3700915.html jar包需要e ...
- Eclipse中的Web项目自动部署到Tomcat的webapp目录下
Eclipse中的Web项目自动部署到Tomcat 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写 ...
随机推荐
- FullSync不支持中文文件名
FullSync,能实现多种方式.协议的目录同步软件,但不支持中文文件名.
- Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_汇总贴
51CTO学院 Java商城秒杀系统的设计与实战视频教程(SpringBoot版) H:\BaiDu\微服务0830\2019最新 Java商城秒杀系统的设计与实战视频教程(SpringBoot版) ...
- 使用AWS、Docker与Rancher提供弹性的生产级服务
2017-07-26 开始想你的 RancherLabs AWS Summit 2017 Beijing已经圆满落幕啦!亚马逊公司首席技术官沃纳·威格尔博士莅临现场,分享 AWS 最新云解决方案,把握 ...
- Linux上MongoDB一些设置
MongoDB启动停止方法 官网安装介绍中依然有启动停止的方式 1 启动 sudo service mongod start 2 停止 sudo service mongod stop 3 重启 su ...
- kettle在windows下面部署定时任务
KETTLE有三大块: Spoon:转换/工作(transform/job)设计工具,主要是GUI方式. Kitchen:工作(job)执行器,是一个作业执行引擎,通过命令行的方式带参数执行,参数说明 ...
- Docker的数据管理(volume/bind mount/tmpfs)
Docker提供了三种不同的方式用于将宿主的数据挂载到容器中:volumes,bind mounts,tmpfs volumes.当你不知道该选择哪种方式时,记住,volumes总是正确的选择. vo ...
- 20190925 - macOS 的包管理工具
众所周知,macOS 的包管理工具有 MacPorts 和 Homebrew,后者似乎更受欢迎,但前者但包数量更多. 喜欢手冲咖啡,看到 brew 这个词有好感,但可能部分由于网络的问题,部分因为 b ...
- C学习笔记-字符串处理函数
字符串函数是最问常用的库函数之一,本文整理了常用的字符串函数,其来源为互联网 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, ...
- linux下安装mysql5.7方法与常见问题
linux上安装mysql5.7 1.下载tar包,这里使用wget从官网下载 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7 ...
- vsphere6.7+Horizon7.8推送桌面遇到的一些问题
系统环境 esxi6.7+vSphere6+Horizon7.8 VC环境为windows server 2016 standard 问题描述 vc安装 链接外部数据库找不到DSN 安装view co ...