我正在使用 rsync 将远程 FTP 备份到本地计算机。
我在网上看到 rsnapshot 更好。
只是想知道在生产环境中使用哪个
答案1
rsnapshot 使用 rsync 并cp -al
以最少的额外存储空间保存历史档案。简而言之:
- 这是“最后”一份副本,我们叫它 back-0
- 先前的副本被称为 back-1、back-2....
每个副本“似乎”都是完整的副本,但实际上任何未更改的文件只存储一次。它使用硬链接出现在几个目录中。
该过程很简单,假设当前有 4 个副本,从 back-0 到 back-3。当调用 rsnapshot 时,它:
- 删除最旧的副本:back-3(
rm -r back-3
) - 将 back-2 重命名为 back-3 (
mv back-2 back-3
) - 将 back-1 重命名为 back-2 (
mv back-1 back-2
) - 从 back-0 到 back-1 创建一个“链接镜像”(
cp -al back-0 back-1
),这将创建 back-1 目录,但不是将每个文件从 back-0 复制到 back-1,而是创建一个硬链接;实际上,这是对同一个文件的第二个引用。第二个名称与第一个名称一样有效,并且直到两个名称都被删除时,文件的数据才会从磁盘中删除。 - 执行从原始存储到 back-0 的 rsync。由于前一次备份仍然在 back-0 上,因此此 rsync 非常快(即使在远程链接上,因为它仅传输更改)。自前一次备份以来更改的文件在 back-0 上被替换,但未在 back-1 上替换,从而断开了它们之间的链接,因此现在您可以保留两个版本。未更改的文件保持在两个目录之间共享,并且不需要额外的存储空间来保持先前的副本一致。
一旦你熟悉了这个过程,你会发现它非常方便。它一点也不复杂,有时我会手动操作以在有趣的时间点保留零星的“以前的版本”(就在重要升级之前,在安装和配置系统之后等)
答案2
此常见问题解答的迟来的回答:rsync 是一种复制/同步工具,对于远程备份非常有效。rsnapshot 和 rdiff 不只是进行一次备份:它们会保留备份的历史记录。据我所知,rdiff 通过保留每次备份之间的文件差异(差异备份)来实现这一点,因此存档无法按原样访问。另一方面,rsnapshot 使用硬链接来获取相同文件(每个更改文件的完整副本),因此存档是用户/管理员可以从中搜索的普通目录。因此,有些情况下每种方法都表现最佳。
答案3
我们使用 rsync 通过 WAN 将数据从主备份服务器复制到热站点备份服务器。它在这方面表现非常好。至于 rsnapshot,我不知道使用该解决方案有什么优势。