如何找到 BTRFS 快照的总大小

如何找到 BTRFS 快照的总大小

我有一个 btrfs 卷 /shares,每天都会将其快照存储到 /.snapshot 文件夹中。

我需要找出我的 /.snapshot 文件夹的实际磁盘使用情况。目前它似乎具有误导性,因为它将每个快照列为快照卷的完整大小。我相信这个“​​大小”中的大部分是引用文件,而不是实际占用的磁盘空间。

有什么方法可以找到整个快照文件夹在磁盘上的实际大小吗?

谢谢。

编辑..

我想我可能已经找到了,但由于我对 unix 还不是很了解,如果有更有知识的人能帮我验证一下就好了。

btrfs 文件系统 du -s --kbytes /.snapshots/

给出

全部的 独家的 设置共享文件名

353.24GiB 201.81MB 58.94GiB /.快照

我认为 /.snapshot 卷的实际磁盘空间的答案是 201.81MB,但不是 100% 确定。

答案1

终于找到了答案(bash 脚本),您需要启用配额,然后运行。

str=$(sudo btrfs qgroup show /snapshottedfolder --kbytes   | tail -n +3);


string="${str//$'\n'/,}"

snapshotFolderSize=0;

while read line; do
  FIELDS=( $line )
  thisLineKb="${FIELDS[2]/'.00KiB'/''}";
  snapshotFolderSize=$((snapshotFolderSize+thisLineKb));
done <<< "$str"


echo "snapshot folder size - $snapshotFolderSize KiB";

相关内容