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
总用量
drwx------. bhd bhd 4月 bhd
drwxr-xr-x. root root 12月 : svndata_bak
[root@bsdi home]# cd svndata_bak/
[root@bsdi svndata_bak]# ll
总用量
drwxr-xr-x. root root 12月 : conf
drwxr-sr-x. root root 12月 : db
-r--r--r--. root root 12月 : format
drwxr-xr-x. root root 12月 : hooks
drwxr-xr-x. root root 12月 : locks
-rw-r--r--. root root 12月 : 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
复制版本 的属性。
[root@bsdi hooks]#

6.同步数据:

[root@bsdi hooks]# svnsync sync --non-interactive svn://192.168.67.60:2396 --username limang --password pwd123!@
已提交版本 。
复制版本 的属性。
传输文件数据......................................................................................................................................................................
已提交版本 。
复制版本 的属性。
传输文件数据.
已提交版本 。
复制版本 的属性。
[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]#

最新文章

  1. Datatable 筛选条件、排序 和获取datagrid当前页面 数据
  2. 网页(HTML)中的特殊字符
  3. [转]silverlight Datagrid 行上增加ToolTip
  4. DOM(二)使用DOM
  5. MVC学习系列——RazorViewEngine扩展
  6. C# WinForm实现控件拖动实例介绍
  7. HTML5 拼图游戏
  8. ArcGIS API for Silverlight开发入门
  9. CSS3实现时间表
  10. HDU 1010Tempter of the Bone(奇偶剪枝回溯dfs)
  11. &简单使用记录
  12. AspNetCore 基于流下载文件与示例代码
  13. 2019.4.1考试&2019.4.2考试&2019.4.4考试
  14. JavaScript学习 - 基础(五) - string/array/function/windows对象
  15. 每日英语:Booming Tech Sector Redraws the Map
  16. oracle导入导出dmp 解决exp-00011
  17. Python-Web框架的本质
  18. Java职业规划
  19. 湖南大学ACM程序设计新生杯大赛(同步赛)E - Permutation
  20. mysql表前缀

热门文章

  1. 保存图片控件上的图片到本地 出现错误:无法将类型为“System.Windows.Media.Imaging.BitmapFrameDecode”的对象强制转换为类型“System.Windows.Media.Imaging.BitmapImage”。
  2. 1、DNS服务基础
  3. LAMP之Apache调优
  4. Python中使用第三方库xlrd来写入Excel文件示例
  5. vue中自定义指令的使用
  6. Java之属性和普通方法
  7. 【POJ - 3685】Matrix(二分)
  8. 配置cinder-volume服务使用ceph作为后端存储
  9. 逆序对 -- cogs1438 火柴排队
  10. 决策树、随机森林与k-means聚类算法