Posted on 2014-01-23 11:08
IceWee 阅读(633)
评论(0) 编辑 收藏 所属分类:
Others
源机器:192.168.1.1
备份机器:192.168.1.2
前提条件:
1、两台机器的网络是连通的
2、两台机器必须同时安装了SVN服务器
假设:
源机器上需要同步的库名为autoSync,访问地址为:svn://192.168.1.1/autoSync,对其具备读写权限的账户:sync/sync
备份机器配置:
1、创建与源机器库名相同的空库
# 假设备份机器的SVN根目录建立在 /home/backup/svn/repository下
svnadmin create /home/backup/svn/repository/autoSync 2、配置备份机器上的autoSync
分别修改conf下的svnserve.conf、passwd、authz,根据实际情况配置,假设创建了用户sync/sync,对库autoSync具备读写权限,配置方法略,配置完成后启动SVN服务
3、创建并修改pre-revprop-change文件
cd /home/backup/svn/repository/autoSync/hooks
cp pre-revprop-change.tmpl pre-revprop-change
vi pre-revprop-change 将文件末尾的“exit 1”修改为“exit 0”即可,保存退出
REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
echo "Changing revision properties other than svn:log is prohibited" >&2
exit 0
增加可执行权限
chmod 755 pre-revprop-change 4、初始化
命令:
svnsync init --username 用户名 --password 密码 备份机器库URL 源机器库URL
说明:
用户名和密码是对源机器SVN库具备读写权限的SVN用户
示例:
svnsync init --username sync --password sync svn://192.168.1.2/autoSync svn://192.168.1.1/autoSync 5、首次同步
首次同步即为一次全备份过程,在此期间请停止客户端段源机器哦一切操作(提交代码等)
命令:
svnsync sync 备份机器库URL
示例:
svnsync sync svn://192.168.1.2/autoSync 源机器配置
6、增量自动同步配置
创建并修改post-commit文件
# 假设源机器的SVN根目录建立在 /home/svn/repository下
cd /home/svn/repository/autoSync/hooks
cp post-commit.tmpl post-commit
vi post-commit 在文件末尾追加:svnsync sync --non-interactive 备份机器库URL --username 用户名 --password 密码
说明:
用户名和密码是对备份机器SVN库具备读写权限的SVN用户
示例:
svnsync sync --non-interactive svn://192.168.1.2/autoSync --username sync --password sync 7、术语
配置完成,今后客户端再向SVN(192.168.1.1)提交文件时,会自动触发源机器(192.168.1.1)向备份机器(192.168.1.2)提交更新
8、版本库UUID一致性
首先查看源机器库的UUID,假设得到的是:fcdcbee9-6be3-4575-8d4a-681ec15ad8e0
svnlook uuid svn://192.168.1.1/autoSync 更新备份机器库的UUID为源机器库的UUID
svnadmin setuuid svn://192.168.1.2/autoSync fcdcbee9-6be3-4575-8d4a-681ec15ad8e0