svn备份之svnsync
2018-12-25 本文已影响0人
平_方
1.软件环境
image.png2.注意
备库不能执行提交操作,否则主库会同步失败
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.测试提交是否同步
在主库上执行提交操作,看备库是否同步