前提:
主机A:192.168.1.10 (主)
主机B:192.168.1.20 (备)
1.安装svn软件(主机A作为主,主机B作为从):
yum install subversion -y
mdkir svnrepo
svnadmin create /home/app/svnrepo/ycsvn
2.修改配置文件:
修改svnserve.conf中的路径设置,并且主从环境上的svnserve.conf中的anon-access都要设置成none:
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = ycsvn
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:
svnserve -d -r /home/app/svnrepo/ycsvn --listen-port 9100 (主)
svnserve -d -r /home/app/svnrepo/ycsvn --listen-port 9100 (从)
5.导出导入版本库:
svnadmin dump 版本库 > xxx.dump
svnadmin load /app/svnrepo/版本库名 < /app/XXX.dump &
6.接下来在主环境上操作,如下这一条命令是同步版本:
svnsync init svn://192.168.1.20:9100/ycsvn svn://192.168.1.10:9100/ycsvn --username yuchen --password pwd123!@ --no-auth-cache
复制版本 0 的属性。
7.同步数据:
svnsync sync --non-interactive svn://192.168.1.20:9100/ycsvn --username yuchen --password pwd123!@
8.接下来在主环境上使用hooks下的post-commit脚本进行SVN实时同步:
修改post-commit如下:
vim post-commit.tmpl
#!/bin/sh
svnsync sync --non-interactive svn://192.168.1.10:9100/ycsvn --username yuchen --password pwd123!@
mv post-commit.tmpl post-commit
chmod +x post-commit
此时当主环境上SVN有代码提交时,会触发这个脚本并执行里面的命令实现主从同步.
网友评论