Opensuse

清除所有 Snapper 快照

  • February 15, 2018

OpenSUSE(以及其他發行版)使用snapper拍攝btrfs分區的快照。有些人認為預設快照間隔太快佔用太多空間,但無論您是否相信,有時您想清理文件系統上的空間,並且經常發現btrfs快照佔用了大量空間。或者,在其他情況下,您可能希望在將文件系統移入/移出 VM 或更改儲存介質或類似的東西之前清除所有多餘數據的文件系統。

但是,我似乎找不到通過 snapper 或其他工具快速擦除**snapper拍攝的所有快照的命令。**我該怎麼做?

最近版本的 snapper 中的命令是(我不記得它是什麼時候引入的,但是例如 openSUSE 13.2 中的版本支持這個):

snapper delete number1-number2

因此,要刪除所有快照(假設您的快照不超過 100000 個),您可以:

snapper delete 1-100000

顯然,這只會刪除預設根配置上的快照,因此對於不同的配置,它將是:

snapper -c configname delete number1-number2

您可以使用for循環刪除範圍內的所有快照(以root身份執行)。

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

這將命中一些無效條目(當數字與快照 ID 不對應時),這將導致無害的錯誤日誌。

要確定快照 ID 的範圍(下限和上限),以便循環不會執行不必要的長,請使用:

snapper list

我找到了這個解決方案以及關於如何減少 snapper 間隔和保留設置的討論。

引用自:https://unix.stackexchange.com/questions/181621