Quota

如何顯示 btrfs 子卷的配額限制?

  • December 31, 2021

我無法確定如何獲取目前在 btrfs 子卷上設置的配額限制。 配額上的 btrfs wiki似乎沒有顯示這一點。

這是我認為我知道的:

  • 設置配額:btrfs qgroup limit 21G /path
  • 檢查已用空間:btrfs qgroup show /path

但是如何檢查已經設置的限制?

使用選項-r-e

btrfs qgroup show -pcre /path

我創建了一個簡單的腳本,它將顯示指定路徑中每個子卷的配額限制以及已用空間。語法非常簡單:

./quota.sh path

要列印所有子卷的已用空間,請使用 -a 標誌:

./quota.sh path -a

不要忘記為腳本添加執行權限。

腳本:


#! /bin/sh
volumes=$(btrfs subvolume list  $1 | cut -d " " -f 9 )
snapshots=$(btrfs subvolume list -s  $1 | cut -d " " -f 14 )
regsnap=$(echo $snapshots | sed 's/ /,/g')
normalv=$(echo $volumes | sed "s/\($regsnap\)//g" )

if [ ! -z "$snapshots" ] ; then
   echo SNAPSHOTS
for p in $snapshots; do 
   quot=$(btrfs qgroup show -rF $1/$p | tail -1)
   if [ -z $2 ]; then
       (echo $quot | grep -q none) || echo $p $quot
   else
    [ "$2" == "-a" ] && echo $p $quot
   fi
done
fi

if [ ! -z "$normalv" ] ; then
   echo SUBVOLUMES
for p in $normalv; do 
   quot=$(btrfs qgroup show -rF $1/$p | tail -1)
   if [ -z $2 ]; then
       (echo $quot | grep -q none) || echo $p $quot
   else
    [ "$2" == "-a" ] && echo $p $quot
   fi
done

fi

它將首先列印傳統子捲和快照卷下方。樣本輸出:

SNAPSHOTS
apple 0/258 1.32MiB 16.00KiB 20.00MiB
SUBVOLUMES
citrus/orange 0/256 1.32MiB 16.00KiB 20.00MiB

引用自:https://serverfault.com/questions/797219