zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    面试题整理
    Node.js核心模块-stream流
    Node.js核心模块-crypto加密
    Node.js核心模块-assert
    Node.js全局对象-process
    nodemon
    随笔
    python学习笔记(十四): unittest
    python学习笔记(十三): 多线程多进程
    python学习笔记(十二):发送邮件
  • 原文地址:https://www.cnblogs.com/magmell/p/7045337.html
Copyright © 2011-2022 走看看