我有一个 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";