Linux下SVN+多个Tomcat自动部署

Posted 叶落千尘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下SVN+多个Tomcat自动部署相关的知识,希望对你有一定的参考价值。

项目中都是jsp开发,所以用到Tomcat。

在我文章中也写过多个Tomcat 的部署,具体可以参考:http://www.cnblogs.com/magmell/p/7045193.html

SVN项目目录:/home/svn

Tomcat访问目录:/usr/local/tomcat/多个tomcat端/webapps/ROOT

把SVN项目检出到Tomcat各个webapps下的ROOT目录中。

cd /usr/local/tomcat/多个tomcat端/webapps/ROOT

检出到当前ROOT目录中:

命令:svn co svn://localhost/src/resources ./

当然可以写一个脚本做到自动检出多个Tomcat目录的。

SVN自动同步:

切换到/home/svn/hooks/

首先:cp post-commit.tmpl post-commit.tmpl.bak

然后:mv post-commit.tmpl post-commit

chmod +x post-commit设置为可执行

也就是说在提交的时候,触发这个脚本

vim post-commit

写入:

svn update --no-auth-cache --username 用户名 --password 密码 /usr/local/tomcat/Tomcat名称/webapps/ROOT

多个Tomcat端可以写多个svn update语句,这样 ,提交的时候就会自动同步到服务器上的web目录中去了。

这样会出现一个问题:svn卡,后来优化了。利用svnlook dirs-changed命令,检测到改变的目录,然后让其对应到相应的目录,经过优化后,速度明显提升。

一下是我写的一个更新脚本:

#更新脚本

SVN=/usr/bin/svn     #svn命令目录
WEB=/home/data    #web目录,即要更新到这里的目录
LOG_PATH=/tmp/svn_hook.log    #日志
echo "Time:"`date \'+%Y-%m-%d %T\'`>>$LOG_PATH
echo `svnlook dirs-changed /home/svn`>>$LOG_PATH

echo “----------------------------------------”>>$LOG_PATH
for i in `svnlook dirs-changed /home/svn`
do
$SVN update $WEB/$i
done

 

以上是关于Linux下SVN+多个Tomcat自动部署的主要内容,如果未能解决你的问题,请参考以下文章

请教tomcat和jenkins部署的一个问题

CentOS 7 环境下部署 SVN 并实现自动更新(版本库放在Tomcat下)

jenkins+tomcat+ant+java+linux 自动部署项目

Jendins+svn+maven+tomcat自动化部署环境搭建

jenkins+maven+svn 远程部署到weblogic 持续集成

Linux下搭建jenkins+svn+http+maven自动化部署