• 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
  • 相关阅读:
    H5版俄罗斯方块(5)---需求演进和产品迭代
    vim 常用 NERDTree 快捷键
    C和C++中include 搜索路径的一般形式以及gcc搜索头文件的路径
    MySQL复制协议
    深入解析MySQL replication协议
    Install CodeBlocks in CentOS 7
    Impala 源码分析-FE
    Elasticsearch 6.x 的分页查询数据
    1、树莓派3B开箱+安装系统
    Python创建ES索引
  • 原文地址:https://www.cnblogs.com/jenry/p/4170346.html
Copyright © 2020-2023  润新知