清除所有快照程序快照


17

的OpenSUSE(其他分布中)的用途取的快照BTRFS分区。有人认为默认快照间隔占用的空间过快,但是无论您是否相信,有时您都希望清除文件系统上的空间,并且经常会发现btrfs快照占用了大量空间。或者,在其他情况下,您可能需要清除文件系统中所有多余的数据,然后再将其移至VM中或从VM中移出,或更改存储介质或类似的内容。

但是,我似乎无法找到一个命令快速清除所有的快照甲鱼已经采取,或者通过鲷鱼或其他工具。我该怎么做?

Answers:


25

snapper的最新版本中的命令是(我不记得何时引入该命令,但是openSUSE 13.2等版本中的命令支持此功能):

snapper delete number1-number2

因此,要删除所有快照(假设您的快照不超过100000个),请执行以下操作:

snapper delete 1-100000

显然,这只会删除默认根配置上的快照,因此对于其他配置,它将是:

snapper -c configname delete number1-number2

我现在遇到错误:找不到快照'100000'。
PavelŠimerda'18

ty,ty,ty。注意,范围运算符不起作用,我不得不手动删除所有20个快照。
Paul Vixie '18年

4

您可以使用for循环删除某个范围内的所有快照(以root身份运行)。

# for i in `seq 1 999`; do snapper delete $i; done

这将击中一些无效的条目(当数字与快照ID不对应时),这将导致无害的错误日志。

要确定快照ID的范围(下限和上限),以使循环不会不必要地长时间运行,请使用:

snapper list

我找到了该解决方案,并讨论了如何减少快照程序间隔和保留设置


-1

如果您正在使用像Debian jessie一样的旧版本的snapper,则可以使用bash-expansion:

snapper delete {1..999}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.