svn备份之svnsync

2018-12-25  本文已影响0人  平_方

1.软件环境

image.png

2.注意

备库不能执行提交操作,否则主库会同步失败

2.1.在(svn-slave)上操作(备库)

2.1.1.备份配置文件

cd /Repositories/conf
cp authz authz.bak
cp passwd passwd.bak

2.1.2.创建备份用户

htpasswd -c /Repositories/conf/passwd syncuser
密码:****

2.1.3.创建备份仓库

svnadmin create /Repositories/back

2.1.4.为备份用户添加权限

vi /Repositories/conf/authz
添加
[back:/]
syncuser = rw

2.1.5.添加钩子

cd /Repositories/back/hooks

2.1.5.1.pre-revprop-change

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

2.1.5.2.start-commit

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

2.1.5.3.为钩子添加权限

chmod 775 start-commit pre-revprop-change

2.2.进行同步在svn-master服务器操作(主库)

2.2.1.初始化备份库

svnsync init http://svn-slave/svn/back/ file:///Repositories/test --username syncuser --password '****'
image.png

2.2.2.同步备份库

svnsync sync http://svn-slave/svn/back/ --username syncuser --password '****'

2.2.3.添加钩子实现自动同步(自动提交)

cd /Repositories/test/hooks/
vi post-commit

#!/bin/sh
/usr/local/subversion/bin/svnsync synchronize --non-interactive http://svn-slave/svn/back/ --username syncuser --password '*****'

chown svn.svn post-commit
chmod 775 post-commit

3.测试提交是否同步

在主库上执行提交操作,看备库是否同步

上一篇下一篇

猜你喜欢

热点阅读