svn备份

snv备份有三种:svn dump 、 svn hotcopy 、svnsync

了解了三种备份机制后建议使用svnsync备份

配置步骤:

master:192.168.0.100

backup:192.168.0.200

1.安装svn

  yum 安装或者使用源码安装;

  这里使用yum ---> yum install subversion -y;使用rpm -ql subversion查看安装文件位置;

2.在master上建立仓库 ----> svnadmin create /data/svn/master

3.在backup上建立备份仓库 ---> svnadmin create /data/svn/backup

4.创建用户并授权(master)

  执行了svnadmin create /data/svn/master 命令后会在/data/svn/master目录下生成conf、hook、db等文件;conf文件是配置用户和权限这些的 

    authz ---->  访问权限

       [/] --->  即svn的主目录

       user = rw ---> 读写权限

    passwd ---> 用户名和密码

      在尾行创建一个用户和密码;

      user = password

    svnserve.conf ----> 服务配置,实验参数配置如下:

      anon-access = none

      auth-access = write

      password-db = passwd

      authz-db = authz

      realm = /data/svn/master

5.backup的master创建授权一样即可,但是要将realm = /data/svn/master 修改为 realm = /data/svn/backup; 

6.在bckup /data/svn/backup/hooks下

  cp  pre-revprop-change.tmpl  pre-revprop-change

  清空并添加如下内容:

    #!/bin/bash

    exit 0

  chmod +x pre-revprop-change

7.backup执行初始化仓库;

  svnsync init svn://192.168.0.200 svn://192.168.0.100 --username user --password password

  执行后出现如下提示表示执行成功

  Copied properties for revision 0.

8.于master同步版本库;

  svnsync sync svn://192.168.0.200 --username user --password  password

9.提交更新实时同步;

  master主机的/data/svn/master/hooks目录

  cp  pre-revprop-change.tmpl  pre-revprop-change;

  cp post-commit.tmpl   post-commit;

  chmod +x post-commit pre-revprop-change

  清空 post-commit;并添加如下内容:

    #!/bin/bash

    svnsync sync --non-interactive svn://192.168.0.200  --username user --password  password

    #--non-interactive   提交更新时,执行同步,不进行交换;

 

至此svn的同步就做好了;在master上提交代码,backup上实时同步;其实原理很简单,当用户想master提交代码的时候 master上的svn利用钩子函数将用户提交的代码同步至backup上;

posted @ 2017-08-14 12:36  天不生老夫子,万古如长夜  阅读(269)  评论(0)    收藏  举报