zoukankan      html  css  js  c++  java
  • linux下svn定时更新项目

    方法一、用shell脚本定时更新项目
     
    1、进入网站的根目录,假设项目位置放在/var/www/test
    cd /var/www/test
     
    2、建立脚本文件update.sh,分两步进行.首先利用touch命令创建,之后使用vim进行编辑.
    touch update.sh
    vim update.sh
     
    输入以下内容
     
    #!/bin/sh
    while true
    do
    svn update --username 你的svn用户名 --password 你的svn密码
    sleep 60
    done
     
    这里我设置的是sleep 60,即每隔60秒更新一次,数值大小可随个人需求而定.不建议间隔时间太短.
     
    在后台执行这段脚本
    nohup ./update.sh
     
    会产生一个nohup.out记录更新信息。或用
    nohup ./update.sh > update.out
     
    这种定时更新方法还不够,因为如果服务器重启的话就没了,我们可以把它写到启动项里边
    vim /etc/rc.local
     
    添加
    nohup /var/www/shop/update.out > /var/www/shop/update.out
     
    方法二、用linux计划任务,这种方式很简单。
     
    crontab -e
     
    或者vim /etc/crontab
     
    或者vim /var/spool/cron/root
     
    在新的一行中添加
     
    */1 * * * * username /usr/bin/svn update /var/www/shop --username dxk --password 123465--no-auth-cache > /var/www/shop/update.log
     
    这里每隔1分钟更新一次,并把记录写到update.log中
     
    重启服务
    service crond restart



    这里主要是使用的定时方式来更新svn项目,用于本地局域网服务器还是可以接受的,但是用于万维网服务器就有点得不偿失了。
    另一种办法就是利用post-commit钩子的方法,在每一次用户提交的时候,服务器上自动同步完成更新动作,减小了服务器压力。
     
    方法三、post-commit钩子
     
    svn 项目中的 hooks 文件中的 post-commit(该文件夹下有 tmp文件 去除后缀即可)
    post-commit
    #!/bin/sh
    export LANG=zh_CN.GBK #svn 编码是GBK
    export LANG=en_US.UTF-8 #svn 编码是UTF-8
    svn up --username=test --password=test --no-auth-cache --non-interactive /var/www/test
     
    (橙色部分根据自己的信息填写)
     
    设置过程中需要注意到的主要有两点:
     
    1.svn的编码 
    2.post-commit 权限 设置成 777
  • 相关阅读:
    xmind 8 readme
    【08】英语词汇速记大全1词根词缀记忆法
    【20180312】2018年03月12日(随想)
    大佬说
    github私有库购买信息
    【01】用构造器创建函数中的小知识
    【01】魔芋使用MDN的一点点经验
    10.12 telnet:远程登录主机
    10.11 arping:发送arp请求
    10.10 traceroute:追踪数据传输路由状况
  • 原文地址:https://www.cnblogs.com/jenry/p/4170346.html
Copyright © 2011-2022 走看看