svn备份。搭建svn从服务,主svn提交时自动同步到从svn

本文详细介绍了如何在CentOS系统中配置Subversion (SVN) 的主从同步服务,包括从服务器的搭建、主服务器的同步初始化及配置hook实现自动同步。通过具体步骤和命令,帮助读者掌握SVN主从同步的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说在最前:同步之前一定要先备份好所有数据。经过尝试,将svn的持久化文件(下文中的 /home/svn/repos)拷贝到其他服务器上,可以直接启动并使用。

 

从服务器

1.安装从svn从服务,已经安装则略过。

  • yum install subversion(centos系统)

2.建立版本库目录

  • mkdir -p /home/svn/repos   
  • svnadmin create /home/svn/repos

3.配置hook

  • cd /home/svn/repos/hooks
  • cp pre-revprop-change.tmpl pre_revprop-change  
  • 编辑 pre_revprop-change,删除pre_revprop-change中所有未注释部分,在最后添加exit 0
  • chmod +x pre_revprop-change  

4.配置svnserve.conf

  • [general]下增加以下配置

       anoe-access = none  ###禁止匿名用户访问
       anon-access = none  ###禁止未鉴权用户访问 (我的理解是用户密码正确,但是没有路径权限的用户)
       auth-access  =  write   ###打开鉴权用户所有权限

注:有三种权限,none,read,write。

       password-db = passwd   ###使用默认的密码文件
       authz-db = authz   ### 使用默认的鉴权文件

5.启动svn 
/usr/bin/svnserve -d -r /home/svn/repos 
 注: 后面加 [--listen-port 3691] 指定端口,默认3690

 

主服务器

1.执行同步初始化

  • svnsync init 目标库 源库  (注意顺序)

例如: svnsync init svn://192.168.10.2:3691/   svn://192.168.10.1:3691/

2.执行同步

  • svnsync sync  目标库

例如:  svnsync sync  svn://192.168.10.2:3691/ 

注:如果库比较大,应该转到后台操作,防止ssh工具断开导致同步失败
nohup  svnsync sync  svn://192.168.10.2:3691/  &

3.配置hook,主svn每次提交时,后台自动提交到从svn。

  • cd /home/svn/repos/hooks
  • cp post-commit.tmpl post-commit
  • 编辑post-commit,删除所有未注释部分,最后一行添加

svnsync sync  --non-interactive svn://192.168.10.2:3691/ --source-username 'user' --source-password 'passwd'  --sync-username 'user' --sync-password 'passwd' 

注:--source-username 源用户 ,--sync-username 目标用户   。密码同理  

  • 执行 chmod +x post-commit

注:如果从svn异常,主svn提交时虽然会报错,但是也会提交成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值