如何在销毁池之前检查池中的所有 ZFS 快照都没有保留

Gra*_*rin 5 scripting zfs command

我已经可以检查每个快照一个的文件系统独立,手动。

我更愿意一次检查所有内容(全部使用单个命令或脚本)。请:

  • 可以用脚本完成吗?

答案应该适用于名称中带有空格的文件系统。

背景

来自 zfs(8) 的手册页:

zfs holds [-H] [-r] snapshot…

… -r指定将具有给定标记的保留递归应用于所有后代文件系统的快照。


我想知道最近的快照是否被视为旧快照的后代。不:

Last login: Sat Dec  8 09:02:26 on ttys003
macbookpro08-centrim:~ gjp22$ zfs holds -r gjp22@2012-12-08-081957
NAME                     TAG  TIMESTAMP
macbookpro08-centrim:~ gjp22$ zfs holds -r gjp22@2012-10-28-212255
NAME                     TAG                                           TIMESTAMP
gjp22@2012-10-28-212255  problem with LocalStorage for WOT for Safari  Mon Oct 29  6:44 2012
macbookpro08-centrim:~ gjp22$ zfs hold experiment gjp22@2012-12-08-081957
macbookpro08-centrim:~ gjp22$ zfs holds -r gjp22@2012-10-28-212255
NAME                     TAG                                           TIMESTAMP
gjp22@2012-10-28-212255  problem with LocalStorage for WOT for Safari  Mon Oct 29  6:44 2012
macbookpro08-centrim:~ gjp22$ zfs holds -r gjp22@2012-12-08-081957
NAME                     TAG         TIMESTAMP
gjp22@2012-12-08-081957  experiment  Sat Dec  8  9:04 2012
macbookpro08-centrim:~ gjp22$ zfs holds -r gjp22@2012-10-28-212255
NAME                     TAG                                           TIMESTAMP
gjp22@2012-10-28-212255  problem with LocalStorage for WOT for Safari  Mon Oct 29  6:44 2012
macbookpro08-centrim:~ gjp22$ 
Run Code Online (Sandbox Code Playgroud)

澄清

我不打算在单个命令或脚本中结合检查销毁。这个问题本质上是关于支票的。

der*_*fan 9

不确定 2012 年的情况如何,但现在您可以查看该userrefs房产:

zfs get userrefs
Run Code Online (Sandbox Code Playgroud)

要列出所有池中的所有保留:

zfs get -Ht snapshot userrefs | grep -v $'\t'0 | cut -d $'\t' -f 1 | tr '\n' '\0' | xargs -0 zfs holds

  • 你说得对!编辑以使用空格。 (2认同)