我应该如何整理我的备份?

我第一次使用rsync来创build我的网站的每日备份,我想知道如果我应该覆盖以前的副本,或者我应该创build多个副本,只覆盖最旧的副本? (虽然我可能没有足够的空间)。

我其实也有这个问题。 让我们假设大部分文件被意外删除.. rsync删除所有这些文件从备份空间,因为他们不存在了吗? 在这种情况下究竟是如何工作的?

谢谢

您肯定需要有一个备份策略,包括保留一些较旧的备份。 如果您只保留一个实时系统的镜像,那么,如果您的实时系统上的文件损坏,您的备份过程将尽责地镜像损坏的文件,而您的备份将变得毫无用处。

一个好的策略是保留大量的时间戳(或者至less有date戳)的备份,这样如果你发现最近的备份中的文件是损坏的文件的副本,你可以参考一下已经很好的旧版本。

由Alastair提到的rsnapshot是一个非常不错的工具,它基于rsync创build和保存可configuration的时间表上可configuration数量的版本化镜像(或“快照”)。 您可以告知rsnapshot每小时,每天,每周和/或每月快照保留多less,当达到所选的最大快照数时,它将自动处理删除最早的快照。 如前所述, rsnapshot对于磁盘空间非常有效,因为它使用硬链接来表示快照之间不改变的文件。

如果你在一个支持硬链接(例如Linux,Unix,OSX等)的系统上,那么类似rsnapshot可能是一个很好的解决scheme。 这使每日,每周等快照和旋转自动化。 由于使用了文件系统硬链接,所以使用的磁盘空间随时间变化很小。

rsnapshot http://rsnapshot.org/

除非你做的事情相当古怪,否则不会覆盖传统意义。 rsync旨在使远程服务器上的文件系统树与本地文件系统树同步(反之亦然)。 第一天你跑它,它会花一点时间,复制整棵树; 第二天,你只会复制已经改变的文件。

如果您需要历史信息,但缺less空间,那么您可能会发现,运行cron作业(远离服务器上的目录)尽可能地进行压缩,而不是保留多个树的副本,并保持尽可能多的tarfiles,你可以负担得起的。

正如derfk指出的那样,你可以selectrsync(eg)是否删除远程端的文件在本地消失了,还有很多其他的行为 – 但是你的工作是在它同步树之前抓住它,如果有人改变了所有的你的本地文件说“我恨馅饼”。

这就是为什么我不认为rsync是适当的备份解决scheme的原因之一。 但是如果你只有另外一台服务器来做备份,而且你的服务器上没有太多的空间,那么rsync +积极的焦点可能就像你可以做的一样好,而不需要进入时髦的联盟FS技巧,这是肯定的比没有备份更好。