什么是Subversion备份的最佳方法(在基于Debian的服务器上)。
是使用svnadmin吗?
svnadmin dump /path/to/reponame > reponame.dump
或者,也许只是要tar存储库所在的目录?
tar -cvzf svn.backup.tar.gz /var/subversion/
以上是什么利弊?
感谢Johan
更新 :这是一个只有less数回购的小型服务器。 所以增量备份可能不需要,我认为最好把重点放在保持简单。
更新 :我使用包裹包装脚本(反过来是svn热备份的包装)进行完整备份,然后在另一台干净的计算机上完成恢复。 但是,我删除了“SVN_HOTBACKUP_NUM_BACKUPS = 10”部分,因为它不适合我。
请注意,我觉得这很简单,结果非常接近只是焦油的目录。 但是,正如Manni在这里指出的那样,使用svn-hot-backup /“svnadmin hotcopy”是一个更可靠的方法,因为如果你运气不好,tar可能会不时地创build损坏的备份。
寻找svn-hot-backup脚本。 它应该附带颠覆,并包含所有的逻辑来做你想做的,加上旧的备份自动滚动。 我已经写了下面的包装脚本,它使用svn-hot-backup作为夜间cronjob运行,以备份具有多个存储库的单个服务器,稍作修改以实现一般化。
#!/bin/bash # # Dumps the svn repos to a file and backs it up # to a local directory. #Keeps the last 10 revisions REPODIR="/var/repos" BAKDIR="/data/backup/svn" PROG="/usr/local/sbin/svn-hot-backup" REPOLIST='repo1 repo2 repo3' if [ ! -x "${PROG}" ] then echo "svnbak: Could not execute \`${PROG}\`" exit 1 fi for repo in ${REPOLIST} do # Dump the database to a backup file echo "svnbak: Dumping subversion repository: ${repo}" SVN_HOTBACKUP_NUM_BACKUPS=10 nice ${PROG} --archive-type=gz ${REPODIR}/${repo} ${BAKDIR}/${repo} &> /tmp/svnbak.$$ if [ "$?" -eq "1" ] then echo "svnbak: Hot backup on '${repo}' failed with message:" /bin/cat /tmp/svnbak.$$ fi /bin/rm /tmp/svnbak.$$ done exit 0
你见过这个文件吗?
基本上,你有两个select:
svnadmin dump执行增量备份 svnadmin hotcopy备份您的整个存储库 只是复制目录不是一个选项,因为您的存储库可能在复制时发生更改。
无论您是进行增量备份还是完全备份,取决于您的偏执狂量,存储库大小,您的需求和基础架构。
我推荐SVNBackup,因为它能够进行增量备份 。
为什么这很重要? 那么,如果你有一个庞大的开发团队,并且你有一个每日的Subversion备份,并且你的系统在12个小时的时间里失效了,那么整个一天的工作就会丢失。
如果您每天多次执行完整备份( SVN hotcopy ),那么会导致对存储库机器造成不必要的负载,这会刺激不耐烦的开发人员。
作为奖励; 我也推荐Backup-PC作为备份解决scheme。 它可以执行增量式远程备份,并且如果您在不同的系统上备份相同的文件,则可以节省大量的空间。
我使用svnsync备份到一个只读的存储库,这个存储库本身是用老版本(日,周,月)
你可以用svnadmin进行增量备份,如果你愿意的话,你应该先运行hot-backup.py,然后再进行tar归档。
这里是一个关于备份svn回购的文章 。 无论如何,阅读SVN书是一个很好的起点,如前所述。
我用普通的旧rsync备份了几个100GB + svn版本库。 svnadmin dump和svnadmin hotcopy将需要几天在这些存储库。
另外要注意的是svnadmin dump不会备份锁和挂钩脚本。
以下是我对存储库所做的工作:使用像Dropbox这样的文件夹备份服务(这里是Linux版本的链接 )。 您只需将Dropbox作为存储库的根目录(甚至在其上),并在每次文件更改时进行备份。 它不仅可以跨计算机使用,而且可以在线访问,并且可以使用它的版本。
有几个这样的在线备份服务 – 大多数是免费的2GB。