美文网首页
svn备份之svnsync

svn备份之svnsync

作者: 平_方 | 来源:发表于2018-12-25 11:12 被阅读0次

    1.软件环境

    image.png

    2.注意

    备库不能执行提交操作,否则主库会同步失败

    2.1.在(svn-slave)上操作(备库)

    2.1.1.备份配置文件

    cd /Repositories/conf
    cp authz authz.bak
    cp passwd passwd.bak

    2.1.2.创建备份用户

    htpasswd -c /Repositories/conf/passwd syncuser
    密码:****

    2.1.3.创建备份仓库

    svnadmin create /Repositories/back

    2.1.4.为备份用户添加权限

    vi /Repositories/conf/authz
    添加
    [back:/]
    syncuser = rw

    2.1.5.添加钩子

    cd /Repositories/back/hooks

    2.1.5.1.pre-revprop-change

    vi pre-revprop-change

    #!/bin/sh
    USER="$3"
    # 限制只有syncuser用户才能提交版本属性修改到此版本库
    if [ "$USER" = "syncuser" ]; then exit 0; fi
    echo "Only the syncuser user may change revision properties" >&2
    exit 1
    

    2.1.5.2.start-commit

    vi start-commit

    #!/bin/sh
    USER="$2"
    # 限制只用syncuser用户才能提交版本修改到版本库
    if [ "$USER" = "syncuser" ]; then exit 0; fi
    echo "Only the syncuser user may commit new revisions" >&2
    exit 1
    

    2.1.5.3.为钩子添加权限

    chmod 775 start-commit pre-revprop-change

    2.2.进行同步在svn-master服务器操作(主库)

    2.2.1.初始化备份库

    svnsync init http://svn-slave/svn/back/ file:///Repositories/test --username syncuser --password '****'
    
    image.png

    2.2.2.同步备份库

    svnsync sync http://svn-slave/svn/back/ --username syncuser --password '****'
    

    2.2.3.添加钩子实现自动同步(自动提交)

    cd /Repositories/test/hooks/
    vi post-commit

    #!/bin/sh
    /usr/local/subversion/bin/svnsync synchronize --non-interactive http://svn-slave/svn/back/ --username syncuser --password '*****'
    

    chown svn.svn post-commit
    chmod 775 post-commit

    3.测试提交是否同步

    在主库上执行提交操作,看备库是否同步

    相关文章

      网友评论

          本文标题:svn备份之svnsync

          本文链接:https://www.haomeiwen.com/subject/jqgxlqtx.html