使用svnsync实时异地备份配置库

公司机房环境不稳定,领导要求做SVN的实时异地备份,以保证数据安全。备份服务器非公司网络,可远程访问。


前提条件:

1. 备份服务器需要安装和主服务器相同的环境。例如,主服务器的环境为 Apache2.4.15 + SVN1.8.17,那么从服务器也需要设置相同的环境。

2. 主服务器能够通过HTTP远程访问备份服务器的配置库


首先搭建备份服务器环境,以下步骤在备份服务器(192.168.3.2)上执行

1. 安装和配置Apache2.4.15,请参看http://blog.csdn.net/w171066/article/details/51093319  和 http://blog.csdn.net/w171066/article/details/51130324

2. 安装SVN1.8.17,请参看http://blog.csdn.net/w171066/article/details/75019663

3. 添加同步用户,此用户用于读写备份后的配置库

[root@localhost ~]# htpasswd -b /opt/svndata syncuser syncpass
Adding password for user syncuser

[root@localhost ~]# vi /opt/svndata/accessfile

[tools:/]
syncuser = rw


4.创建备份库,创建并编辑pre-revprop-change 和start-commit  hook

[svn@localhost svndata]$ svnadmin create tools

[svn@localhost svndata]$ cd tools/hooks

[svn@localhost svndata]$ 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

[svn@localhost svndata]$ 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
[svn@localhost svndata]$chmod 775 start_commit pre-revprop-change


回到主服务器,以下步骤在主服务器上进行

在主服务器上必须能够通过http访问备份库.(可能需要关闭备份服务器上的防火墙或者开放相应端口)

1.初始化备份库

[svn@localhost ~]$ svnsync init http://192.168.3.2:8000/opt/svndata/tools  file:///opt/svndata/tools --username syncuser --password syncpass
Copied properties for revision 0.


2.同步备份库

[root@localhost ~]# svnsync sync http://192.168.3.2:8000/opt/svndata/tools  --username syncuser --password syncpass

这个步骤用时很长。执行完这步,配置库就同步过去了。


3.修改post-commit  hook, 以便每次执行完commit动作,都把修改同步到备份库

[svn@localhost ~]$ vi tools/hook/post-commit

#!/bin/sh 
/bin/svnsync synchronize --non-interactive http://192.168.3.2:8000/opt/svndata/tools --username syncuser --password
 syncpass

这样,就配置完成了SVN库的实时备份。




  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w171066

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值