安装SVN
1 | yum -y install subversion |
创建SVN仓库
先创建仓库目录,用来放仓库文件
1 | mkdir -p /usr/local/svn/repo |
在上面目录下创建SVN仓库
1 | svnadmin create /usr/local/svn/repo |
配置SVN
进入SVN配置目录
1 | cd /usr/local/svn/repo/conf |
配置svnserve.conf
至少有三个地方需要取消注释。
1 | auth-access = write |
配置passwd
比如增加一个admin用户
1 | [users] |
配置authz
给admin用户设置根目录的读写权限
1 | [/] |
启动SVN服务
1 | svnserve -d -r /usr/local/svn/repo/ |
-d
参数是daemon
-r
参数是root,也即是仓库的根目录
服务启动后,SVN服务在3690端口进行监听
1 | ss -tunlp | grep 3690 |
SVN备份
全量备份
把/usr/local/svn/repo
仓库的内容备份到/usr/local/svn-bak/
目录下。
1 | sudo svnadmin dump /usr/local/svn/repo/ > /usr/local/svn-bak/repobak-all |
增量备份
查看svn最新的版本号
1 | svnlook youngest /usr/local/svn/repo |
可得知svn的版本号为1。
初始备份
1 | sudo svnadmin dump /usr/local/svn/repo/ -r 0:1 --incremental > /usr/local/svn-bak/repobak0-1 |
-r
参数:0:1
,指定备份的开始与结束版本号。
--incremental
参数:表示增量备份。
再次备份
下次备份时,查看最新的svn版本号:
1 | svnlook youngest /usr/local/svn/repo |
说明这两次备份之间,只更新了一个版本。
执行增量备份:
1 | sudo svnadmin dump /usr/local/svn/repo/ -r 2:2 --incremental > /usr/local/svn-bak/repobak2-2 |
恢复
灾难过后,新建svn仓库,如:/usr/local/svn/recovery-repo/
。
全量恢复
1 | sudo svnadmin load /usr/local/svn/recovery-repo/ < /usr/local/svn-bak/repobak |
再恢复最近的版本。
1 | sudo svnadmin load /usr/local/svn/recovery-repo/ < /usr/local/svn-bak/repobak2-2 |
恢复后,设置好密码、权限等配置,启动svnserve服务,就算是恢复完成了。