CACHEDIR.TAG 和 .nobackup 的评估是否不同?

CACHEDIR.TAG 和 .nobackup 的评估是否不同?

使用时我们应该注意什么缓存目录标签和.nobackup?

这些是同义词,还是我们应该期望程序以不同的方式处理它们?

答案1

您应该问的问题是“这些文件名对于我的特定备份配置有什么特殊含义吗?”

显然博格备份有一个选项--exclude-caches将自动验证文件的签名(CACHEDIR.TAG无论在何处找到),如果正确,则忽略该目录及其所有子目录的全部内容。

通过一些快速谷歌搜索.nobackup,BorgBackup 中似乎没有对它的特殊支持,因为它通常像这样使用

borg recreate --exclude-if-present .nobackup /data/borg-backup

ie.nobackup用作选项的参数--exclude-if-present,不带固有文件名的特殊含义。

BorgBackup 文档对这些选项的描述如下:

--exclude-caches 排除包含 CACHEDIR.TAG 文件的目录(http://www.bford.info/cachedir/spec.html

--exclude-if-present NAME 排除通过包含具有给定名称的文件系统对象来标记的目录

由于这两个选项都是关于排除一个目录(如果指定的文件位于其中),并且--exclude-caches必须按照规范排除该目录和所有子目录,所以我必须假设这--exclude-if-present NAME将具有完全相同的效果,并且 Borg 文档假设当排除一个目录时,不言而喻,它的所有子目录也被排除在外。

因此,除了 CACHEDIR.TAG 上的内容检查之外,这些选项实际上是同义的。

如果您不使用适当的选项,则这些文件都没有任何特殊含义。

如果您使用--exclude-caches,则根据链接规范,有效形成的 CACHEDIR.TAG 文件应导致目录及其子目录被排除。

如果您使用--exclude-if-present .nobackup,则仅检查文件名:没有文件内容的规范,因此理论上更有可能出现误报。但考虑到文件名不言而喻的含义,我认为在实践中风险不会太大。

你应该以root身份运行eglocate CACHEDIR.TAGlocate .nobackup在您自己的系统上评估这两种选择会给您带来多少好处。在我的个人系统上,我看到一些程序(fontconfigmanplocate)似乎CACHEDIR.TAG自动用文件标记了它们的缓存,但似乎没有一个程序使用过.nobackup.

遗憾的是,像 Firefox、Thunderbird、Google Chrome 和 Google Earth 这样的大型缓存似乎并没有使用这两种约定自动标记。

另一方面,touch .nobackup它很简单,不需要特殊知识。要创建CACHEDIR.TAG文件,您至少需要:

echo "Signature: 8a477f597d28d172789f06886806bc55" > CACHEDIR.TAG

因此,如果您需要教用户手动维护标记文件,教他们创建.nobackup文件可能比教他们创建有效CACHEDIR.TAG文件更容易。

另一方面,如果您可以向他们(和/或您自己)提供一个脚本(或类似的“固定程序”)来将目录标记为从备份中排除,则手动工作的差异将是微不足道的。

相关内容