Borg: 为“修剪”标记档案?

创建于 2016-04-06  ·  5评论  ·  资料来源: borgbackup/borg

目前borg prune只能限制要通过公共前缀修剪的档案。 这适用于命名方案,因为档案名称的“修剪相关”部分在前面,例如system-<hostname>-<date>userdata-<hostname>-<date> ,但实际上不适用于其他任何东西。

添加标签,即任意字符串列表(不包括作为标签分隔符的“,”)会有所帮助。 “prune”和其他使用“--prefix”的命令将获得“--tags”选项,并且只有列出了_all_(或_any_,讨论)标签的档案才会受到影响(因此它们应该是不可变的)。


编辑:可能有不同的方法,没有额外的元数据字段,向后适用

名字已经有了。 我们可以添加类似--tags some,tags (这里总是使用,作为分隔符?)和--tag-delim - (默认 delim 是什么?)之类的东西。

tags = set(args.tags.split(args.tag_delim))
for archive in ...:
  if set(archive.name.split(args.tag_delim)) <= tags:
    ...  # prune
enhancement

最有用的评论

我想针对标签/别名提出此功能请求。

在 git 世界中花了这么多时间之后,我发现自己希望我可以将额外的标签应用到特定的博格档案。

当前可以在存档名称中嵌入标签,但是当您想为存档使用多个标签时,这是非常不规则的。 例如,我已经使用存档名称来嵌入主机名、时间戳和一两个其他字段。 我还想添加其他标签,例如“@latest”和“@release-1”。 这很快就会变得混乱。 更糟糕的是,我有时想诸如@latest 之类的标签从一个存档移动到另一个存档。

如果你只是使用 borg 来备份文件(当然,它的原始任务),可能不需要很多标签。 但是,如果像我一样,您发现 borg 的重复数据删除在其他情况下非常有用,例如存档数据分析管道中使用的非常大的文件 :-) 那么将多个标签分配给现有存档的能力就变得非常重要。

目前,我的解决方法是使用我设计的命名方案创建原始档案,然后立即创建多个名称以“@”开头的其他档案——@ latest 、@v1.0、 @beta2 ,等等。这些附加档案中的每一个都需要几分钟的时间来扫描/创建,并且由于内容与原始档案完全相同,因此仅向存储库添加了几百个字节。 (好吧,只要文件在那几分钟内没有改变。)

通过添加标签元数据来消除这种减速会非常好。

我设想 UI 是这样的:

  • 创建一个新标签并将其指向现有存档:
    borg tag [repo::archive-name] [tag1] [tag2] ...

  • 列出所有标签和它们指向的档案
    borg tag --list [repo]

  • 删除标签可以重新使用现有的borg delete命令,也可以是一个命令选项:
    borg tag -d [repo] [tagname]

感谢您考虑这一点!

所有5条评论

混合名称和标签感觉不干净。 标签可以是单独的存档元数据。

好点,但我不确定这是否在这里不好(作为设计决定)。 #866 让我想到“嗯,档案名称到底是做什么的?”。 “回收”它用于标记并不是一件非常干净的事情,但对我来说似乎很实用(如果它是 100% 明确选择加入)。 在某种程度上,“标签”只是查看“名称”字段的不同方式。

我想针对标签/别名提出此功能请求。

在 git 世界中花了这么多时间之后,我发现自己希望我可以将额外的标签应用到特定的博格档案。

当前可以在存档名称中嵌入标签,但是当您想为存档使用多个标签时,这是非常不规则的。 例如,我已经使用存档名称来嵌入主机名、时间戳和一两个其他字段。 我还想添加其他标签,例如“@latest”和“@release-1”。 这很快就会变得混乱。 更糟糕的是,我有时想诸如@latest 之类的标签从一个存档移动到另一个存档。

如果你只是使用 borg 来备份文件(当然,它的原始任务),可能不需要很多标签。 但是,如果像我一样,您发现 borg 的重复数据删除在其他情况下非常有用,例如存档数据分析管道中使用的非常大的文件 :-) 那么将多个标签分配给现有存档的能力就变得非常重要。

目前,我的解决方法是使用我设计的命名方案创建原始档案,然后立即创建多个名称以“@”开头的其他档案——@ latest 、@v1.0、 @beta2 ,等等。这些附加档案中的每一个都需要几分钟的时间来扫描/创建,并且由于内容与原始档案完全相同,因此仅向存储库添加了几百个字节。 (好吧,只要文件在那几分钟内没有改变。)

通过添加标签元数据来消除这种减速会非常好。

我设想 UI 是这样的:

  • 创建一个新标签并将其指向现有存档:
    borg tag [repo::archive-name] [tag1] [tag2] ...

  • 列出所有标签和它们指向的档案
    borg tag --list [repo]

  • 删除标签可以重新使用现有的borg delete命令,也可以是一个命令选项:
    borg tag -d [repo] [tagname]

感谢您考虑这一点!

最近才开始尝试 borg,但想要 +1 标记想法。 我可以看到一个与备份相关的用例,其中标签用于定义存档备份到多个云服务中的哪一个。 我想(基于其他讨论)云备份很可能是通过一个单独的工具来获取标签,例如,处理创建要上传的 *.tgz 文件。 (您甚至可以将备份频率添加为一个单独的可检测标签,但这类事情将在备份工具的范围内,而不是 borg 本身。)

有关可能的标签实现,请参阅问题 #2300。 它目前更像是git tag不是 Gmail 标签——换句话说,档案可以存在其他别名,但它们必须是唯一的。 将这个想法与这里讨论的内容合并可能并不难——标签应用于多个档案。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

russelldavis picture russelldavis  ·  3评论

htho picture htho  ·  5评论

pierreozoux picture pierreozoux  ·  4评论

phdoerfler picture phdoerfler  ·  6评论

tconstans picture tconstans  ·  5评论