• SVN主从备份


    SVN主从备份

    两套环境:192.168.67.63(主SVN)

                     192.168.67.60(从SVN)


    1.主环境上已经装好SVN并且存在数据仓库/home/svndata在从环境上,新建一/home/svndata_bak仓库:

    [root@bsdi home]# svnadmin create /home/svndata_bak
    [root@bsdi home]# ll
    总用量 0
    drwx------. 3 bhd  bhd  78 4月  11 2018 bhd
    drwxr-xr-x. 6 root root 86 12月  3 13:59 svndata_bak
    [root@bsdi home]# cd svndata_bak/
    [root@bsdi svndata_bak]# ll
    总用量 8
    drwxr-xr-x. 2 root root  54 12月  3 13:59 conf
    drwxr-sr-x. 6 root root 233 12月  3 13:59 db
    -r--r--r--. 1 root root   2 12月  3 13:59 format
    drwxr-xr-x. 2 root root 231 12月  3 13:59 hooks
    drwxr-xr-x. 2 root root  41 12月  3 13:59 locks
    -rw-r--r--. 1 root root 229 12月  3 13:59 README.txt

    2.把主环境上的conf下的authz、passwd、svnserve.conf拷贝覆盖掉从环境上的conf下的文件,覆盖之后注意修改svnserve.conf中的路径设置,并且主从环境上的svnserve.conf中的anon-access都要设置成none:

    anon-access = none
    auth-access = write
    password-db = passwd
    authz-db = authz
    realm = /home/svndata_bak

    3.修改hooks文件夹下的pre-revprop-change(注意主从环境上的都要做同样的修改):

    [root@bsdi hooks]# vim pre-revprop-change.tmpl
    #!/bin/sh
    exit 0
    [root@bsdi hooks]# mv pre-revprop-change.tmpl pre-revprop-change
    [root@bsdi hooks]# chmod +x pre-revprop-change

    4.设置完成之后启动svn,这样就得到一个和主环境上相同用户和权限的从SVN库:

    [root@bsdi hooks]# svnserve -d -r /home/svndata_bak --listen-port 2396

    5.接下来在主环境上操作,如下这一条命令是初始化版本:

    [root@bsdi hooks]# svnsync init svn://192.168.67.60:2396 svn://192.168.67.63:2396 --username limang --password pwd123!@ --no-auth-cache
    复制版本 0 的属性。
    [root@bsdi hooks]#

    6.同步数据:

    [root@bsdi hooks]# svnsync sync --non-interactive svn://192.168.67.60:2396 --username limang --password pwd123!@
    已提交版本 1。
    复制版本 1 的属性。
    传输文件数据......................................................................................................................................................................
    已提交版本 2。
    复制版本 2 的属性。
    传输文件数据.
    已提交版本 3。
    复制版本 3 的属性。
    [root@vasoyn hooks]#

    此时主从数据已经成功同步,在svn浏览器中访问从环境,发现已存在一个一摸一样的仓库。

    7.接下来在主环境上使用hooks下的post-commit脚本进行SVN实时同步:

    修改post-commit如下:

    [root@bsdi hooks]# vim post-commit.tmpl
    #!/bin/sh
    svnsync sync --non-interactive svn://192.168.67.60:2396 --username limang --password pwd123!@
    [root@bsdi hooks]# mv post-commit.tmpl post-commit
    [root@bsdi hooks]# chmod +x post-commit

    此时当主环境上SVN有代码提交时,会触发这个脚本并执行里面的命令实现主从同步。

    8.设置SVN开机启动:

    SVN主从同步的前提是,主从SVN可以互相访问,所以需要将主从SVN都设置开机启动:

    修改/etc/rc.d/rc.local并设置该文件为可执行文件:

    [root@bsdi hooks]# vim /etc/rc.d/rc.local
    #!/bin/bash
    svnserve -d -r /home/svndata --listen-port 2396
    [root@bsdi hooks]# chmod +x /etc/rc.d/rc.local
    [root@bsdi hooks]#
    以梦为马,诗和远方
  • 相关阅读:
    100——第9例
    100——第8例
    100——第7例
    POJ
    POJ
    POJ
    Egyptian Collegiate Programming Contest 2017 (ACM ECPC 2017)
    SCUT
    SCUT
    SCUT
  • 原文地址:https://www.cnblogs.com/MasterBai2018/p/12067003.html
Copyright © 2020-2023  润新知