【问题标题】:How to synchronize source and destination folders when destination contains only NTFS hard links当目标仅包含 NTFS 硬链接时如何同步源文件夹和目标文件夹
【发布时间】:2012-06-08 07:14:31
【问题描述】:

我们有源“S”文件夹、目标“D”和原始“O”。

D 是对所有文件使用 NTFS 硬链接的 O 的副本。

现在我们需要同步 S 和 D,并且只将更改的文件从 S 复制到 D。

Robocopy.exe 会这样做,但是它会覆盖文件,因此 D 和 O 中的文件都被更改了,但无论如何我们希望 O 中的文件保持不变。

要正确更新硬链接副本,需要删除 D 中的文件(以断开链接),然后创建具有相同名称的文件而不是覆盖。

robocopy 支持吗?也许有一个特殊的参数,或者是否有任何其他免费实用程序(最好是开源)知道如何正确更新文件,如果它是一个硬链接?

【问题讨论】:

  • 没有没有可以使文件的一个实例成为“硬链接”,而使另一个成为“原始”。它们是“一流的”——既不是次要的,也不是操作系统或您的次要的。当说文件夹“仅”包含硬链接时请记住这一点,因为这些是文件它们自己,毫无疑问!
  • 复制 D 到 D2,删除 D,将 D2 重命名为 D。以后不要使用硬链接。
  • Mehrdad,谢谢,在发布了一个问题后,我意识到这两个文件(一个在 O 中,一个在 D 中)都是硬链接,因为我需要一个工具来始终按以下方式进行操作:create temp文件,删除原始文件,将 temp 重命名为原始行为。
  • Harry,由于我们要求从 O 复制到 D 的具体要求应该尽可能快,如果文件夹是 ~20Gb 或更多复制操作需要太多时间,这就是我们使用硬链接的原因。同样通过这种方式,我们可以存储多个版本的 O(在 D1、D2、D3、... Dn 中),并且非常节省空间。
  • 这一切都很好,但是有一天有人会不小心编辑或覆盖 Dn 中的一个文件并且非常生气,这样做会破坏 O 和 D1 到 D(n-1)。硬链接并不是处理可变文件的好机制。您可能应该使用单实例存储进行调查。

标签: windows ntfs data-synchronization


【解决方案1】:

您可以尝试使用 rsync - 有关详细信息,请参阅这篇文章,包括现成的备份脚本:

How to create rsync-like hard link backups with VSS on Windows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 2017-05-23
    相关资源
    最近更新 更多