
コンソールを介して利用可能なディスク容量を見つけようとしています。
df -h | awk '$NF == "/" { print $4 }'
希望の出力が得られたことがわかりました。
[root@tmpe2etstmsdc01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_root-lv_root 542G 22G 492G 5% /
tmpfs 127G 0 127G 0% /dev/shm
効果がある
[root@tmpe2etstmsdc01 ~]# df -h | awk '$NF == "/" { print $4 }'
492G
これは古くなればUse%
価値を与えるFilesystem
[root@ldrnr-tlsmsdc16 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_root-lv_root
16G 16G 0 100% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
Use%
ここでは代わりにコマンドが提供されます。Avail
[root@ldrnr-tlsmsdc16 ~]# df -h | awk '$NF == "/" { print $4 }'
100%
Avail
どうすればこの状態に入ることができますか?
答え1
努力する:
stat -fc %a /mountpoint
%a
スーパーユーザー以外のユーザーが使用できるブロックです。%f
合計空きブロックに使用されます。また、これは%s
ブロックサイズなので、利用可能な合計バイト数が必要な場合は、次のように言うことができます。
stat -fc '%f * %s' /mountpoint | bc
よりその他のオプションについては、stat(1) のマニュアルページを参照してください。。通常、stat(1)
解析可能な出力よりも使いやすくなりますdf
。
答え2
GNU coreutils では、次のコマンドを使用できます。
df -h --output=avail / | sed '1d'
Avail
にマウントされているファイルシステムの行のみを印刷します/
。残念ながらdf
、ヘッダー行を無効にするオプションがないため、sed
最初の行は削除されました。
答え3
awkを試してみることもできます。
df -h|tail -n +2 | awk '{if ($5 == "/")print $3; }'
または:
df -h|tail -n +2 | awk '{if ($6 == "/") print $4; }'
df 出力によって異なります。
答え4
df -h | awk '$NF == "/" { if($1 ~ /^[0-9]/) print $3; else print $4 }'
または
df -h | awk '$NF == "/" { if($5 == "/") print $3; else print $4 }'