Quota
如何顯示 btrfs 子卷的配額限制?
我無法確定如何獲取目前在 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