备份subversion存储库

时间:2010-10-07 02:52:09

标签: svn bash shell backup

CentOS 5.3 颠覆1.4.2

我忘了添加。目前,存储库总大小约为5GB,但随着时间的推移会增长。

我们在运行CentOS 5.3的内部服务器上有源代码和文档,我们正在使用subversion 1.4.2。

我们正在寻找备用策略。我们想要执行每日备份。我们有大约30个存储库来备份不同大小。

我可以使用svnadmin dump创建一个脚本文件并递归备份。

但是,我正在寻找一种自动备份系统,每天早上12点运行。

有没有人知道任何开源的备份系统?我认为我的公司不愿意为任何系统付费。

非常感谢任何建议,

4 个答案:

答案 0 :(得分:2)

我可以命名更多的开源解决方案,但对于此应用程序,我的选择是rsynccron作业。

以下是一些open source选项的概述(有些是面向桌面的)。

修改

关于rsync的好处是,它可以直接同步存储repo的文件夹。这种方法的缺点是它可能同步一个腐败的存储库。执行转储和存储增量备份可以保护您免受此攻击。

尽管我上面推荐的是,但我个人的偏好是完全避免颠覆。使用像git或mercurial这样的DVCS,开发人员有一个完整的存储库工作副本,可用于在共享服务器上恢复副本。

答案 1 :(得分:1)

查看可能的重复内容。编写脚本并将其安排为cron作业并不难。我建议同时进行增量夜间备份(svnadmin dump)和每周完整备份(hotcopy)。

答案 2 :(得分:1)

我的意见是,真的不需要为备份创建一个svn转储。 svn dump是一个列在单个文件中的变更集列表,这可能会占用更多资源。我只相信你能够只压缩所有存储库所在的文件系统,稍后才能恢复它。

我能想到的另一个选择是rsvndump,这种转储可以逐步执行,这将大大减少时间。

如果您正在寻找灾难恢复的观点,可能您可以使用另一个并行系统,您可以执行svnsync,每隔几分钟就会创建一个repo备份,这样您就可以在备份可能非常少或没有。

答案 3 :(得分:1)

我同意您必须使用svn hotcopy或svnadmin转储来备份subversion存储库。否则,如果有人在备份期间提交了提交,您可能会备份存储库的损坏版本。

虽然有一些令人眼花缭乱的开源subversion备份脚本,但我建议使用this svn-backup tool。它结合了完整和增量存储库备份的优点,并且每个存储库只会生成一个备份文件,无论它运行多少次。生成的备份经过压缩,非常适合通过rsync进行有效传输。