使用时我们应该注意什么缓存目录标签和.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.TAG
和locate .nobackup
在您自己的系统上评估这两种选择会给您带来多少好处。在我的个人系统上,我看到一些程序(fontconfig
、man
和plocate
)似乎CACHEDIR.TAG
自动用文件标记了它们的缓存,但似乎没有一个程序使用过.nobackup
.
遗憾的是,像 Firefox、Thunderbird、Google Chrome 和 Google Earth 这样的大型缓存似乎并没有使用这两种约定自动标记。
另一方面,touch .nobackup
它很简单,不需要特殊知识。要创建CACHEDIR.TAG
文件,您至少需要:
echo "Signature: 8a477f597d28d172789f06886806bc55" > CACHEDIR.TAG
因此,如果您需要教用户手动维护标记文件,教他们创建.nobackup
文件可能比教他们创建有效CACHEDIR.TAG
文件更容易。
另一方面,如果您可以向他们(和/或您自己)提供一个脚本(或类似的“固定程序”)来将目录标记为从备份中排除,则手动工作的差异将是微不足道的。