安装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 2 3 auth-access = write password-db = passwd authz-db = authz
配置passwd 比如增加一个admin用户
1 2 3 4 [users] # harry = harryssecret # sally = sallyssecret admin = admin
配置authz 给admin用户设置根目录的读写权限
启动SVN服务 1 svnserve -d -r /usr/local/svn/repo/
-d
参数是daemon
-r
参数是root,也即是仓库的根目录
服务启动后,SVN服务在3690端口进行监听
1 2 ss -tunlp | grep 3690 tcp LISTEN 0 7 *:3690 *:*
SVN备份 全量备份 把/usr/local/svn/repo
仓库的内容备份到/usr/local/svn-bak/
目录下。
1 2 3 4 sudo svnadmin dump /usr/local/svn/repo/ > /usr/local/svn-bak/repobak-all \* Dumped revision 0. \* Dumped revision 1. \* Dumped revision 2.
增量备份 查看svn最新的版本号 1 2 svnlook youngest /usr/local/svn/repo 1
可得知svn的版本号为1。
初始备份 1 2 3 sudo svnadmin dump /usr/local/svn/repo/ -r 0:1 --incremental > /usr/local/svn-bak/repobak0-1 \* Dumped revision 0. \* Dumped revision 1.
-r
参数::,上面例子是0:1
,指定备份的开始与结束版本号。
--incremental
参数:表示增量备份。
再次备份 下次备份时,查看最新的svn版本号:
1 2 svnlook youngest /usr/local/svn/repo 2
说明这两次备份之间,只更新了一个版本。
执行增量备份:
1 2 sudo svnadmin dump /usr/local/svn/repo/ -r 2:2 --incremental > /usr/local/svn-bak/repobak2-2 \* Dumped revision 2.
恢复 灾难过后,新建svn仓库,如:/usr/local/svn/recovery-repo/
。
全量恢复 1 2 3 4 5 6 7 8 9 10 11 12 13 14 sudo svnadmin load /usr/local/svn/recovery-repo/ < /usr/local/svn-bak/repobak ``` # 先恢复最早的版本。 ```shell sudo svnadmin load /usr/local/svn/recovery-repo/ < /usr/local/svn-bak/repobak0-1 <<< Started new transaction, based on original revision 1 \* adding path : project1 ... done. \* adding path : project1/new ... done. ------- Committed revision 1 >>>
再恢复最近的版本。
1 2 3 4 5 sudo svnadmin load /usr/local/svn/recovery-repo/ < /usr/local/svn-bak/repobak2-2 <<< Started new transaction, based on original revision 2 \* editing path : project1/new ... done. ------- Committed revision 2 >>>
恢复后,设置好密码、权限等配置,启动svnserve服务,就算是恢复完成了。