实验环境:
主SVN库:103.17.243.17
从SVN库:10.101.111.210
操作系统: CentOS Linux release 7.2.1511 (Core)
一、在备份机上,安装SVN
具体的安装方法,可以参考之前的文章《Centos 7 安装和配置SVN》
这里只需要安装SVN即可,不需要重新配置,因为配置文件从主库复制就可以了,下面会说明!
二、在备份机上,准备SVN主从同步的基础
2.1 在备份机上,创建准备同步的SVN备用库
[root@status svnback]#mkdir /data/svnback && cd /data/svnback [root@status svnback]#svnadmin create sample
2.2 在备份机上,修改刚刚创建的SVN库里的钩子脚本pre-revprop-change
[root@status svnback]#cd sample/hooks [root@status svnback]#cp pre-revprop-change.tmpl pre-revprop-change [root@status svnback]#chmod +x pre-revprop-change [root@status svnback]#vim pre-revprop-change 将最后一行改为exit 0,或者直接把该文件清空
三、在备份机上,把主库的相关配置文件复制到从库对应位置
3.1 在备份机上,复制主库的SVN配置文件
[root@status svnback]#scp -r -p 103.17.243.17:/etc/httpd/conf.d/svn.conf \ /etc/httpd/conf.d/
注意:如果SVN本地存放路径不一样,需要修改配置文件,如:
3.2 在备份机上,复制主库的对应SVN的账户密码文件
[root@status svnback]#scp -r -p 103.17.243.17:/data/svn/sample/.htpasswd \ /data/svnback/sample/
3.3 在备份机上,复制主库的对应的SVN的权限控制文件
[root@status svnback]#scp -r -p 103.17.243.17:/data/svn/sample/conf/authz \ /data/svnback/sample/conf/ [root@status svnback]#scp -r -p 103.17.243.17:/data/svn/sample/conf/svnserve.conf \ /data/svnback/sample/conf/
四、在备份机上,开始同步主库的SVN数据
4.1 在备份机上,初始化同步设定
[root@status svnback]#svnsync init file:///data/svnback/sample \ http://103.17.243.17/svn/sample
命令说明:svnsync init 本地SVN库的URL 主库的URL
本地SVN库的URL:由于是在备份机执行,直接用‘file:///’这种格式的URL即可。
主库的URL:主库的URL地址,也就是你需要备份的SVN源地址。
执行命令后,进入交互式命令行模式:
a) Password for ‘root’:输入主库服务器的root密码,这里没有指定用户,默认为‘root’用户!
b) Username:输入访问SVN的账户,就是http访问SVN时的账号
Password for ‘xxxx’:输入访问SVN的对应的密码
c) Store password unencrypted (yes/no)? :是否存储账号密码,我这里选择yes
d) 初始化成功
4.2 在备份机上,开始同步数据
[root@status svnback]#svnsync sync file:///data/svnback/sample
4.3 更改备用SVN库的属主属组,重启httpd服务
[root@status svnback]#chown -R apache:apache sample [root@status svnback]#systemctl restart httpd
五、测试SVN主从库的同步结果
5.1、在本地电脑上check out备份机的SVN库
5.2 对比主库和备用库的SVN版本号知否一致
可以发现,主库和备用库的SVN版本已经保持一致!
5.3 主库添加测试文件
5.4 备用库开启同步
[root@status OA2.0]# svnsync sync file:///data/svnback/GovCar
5.5、更新备用库的SVN内容
至此,SVN库主从同步搭建完成!
从能更新最新版本 但是从库上没有文件 怎么解?
啥意思,没有明白你的问题?