デフォルトでは、Linuxはファイルシステムの一部をrootユーザー用に少なくともext4で予約しています(通常のユーザーがドライブを完全にいっぱいにしてシステムをクラッシュさせないようにし、断片化を減らすため)。ただし、df
は、通常のユーザーに明らかな空き領域のみを表示します(rootとして実行されている場合でも)。 rootがアクセスできる「実際の」空きスペースをどのように表示しますか?
組み込みのツールがあるかどうかはわかりませんが、予約をデフォルトの5%のままにしておくと、次のようになります。
df / | grep dev | cut -f 3,6 -d\ | awk '{print ($1*.05)+$2}'
df
ルート、grep
devが含まれる行(ヘッダーを削除するため)、cut
サイズと使用可能なフィールド、次にawk
利用可能なディスクサイズの5%を計算するスクリプト。
実際の予約をtune2fs -l <device>
からプルし、これを上記のスクリプトと組み合わせることができます。
コマンドtune2fs(/ sbin/tune2fsにあります)を使用すると、予約スペース:(およびその他!)
tune2fs -l /dev/sda1
参照用にシステムの情報を提供します。この質問にとって重要ではない無関係な行を削除します。
ヘッダー...とボリューム名、Ilabelすべてのドライブにより、必要に応じて簡単に識別できます。
tune2fs 1.42.4 (12-Jun-2012)
Filesystem volume name: xenon
Last mounted on: /
...
システムが稼働している間は、これに「クリーン」と言ってほしいです。正直!
Filesystem state: clean
ここから、データストレージ容量の情報が始まります。
ここで、合計121,179,648ブロックがあることを確認できます。ブロックサイズは4K(4096)で、いくつかの大きな数(462ギッシュGB)に乗算されます。 (ブロックサイズは以下に記載されています)
Block count: 121179648
そして、予約済みブロック...上記の数と以下の数を見ると、1%が予約済みであることが比較的迅速にわかるはずです。この場合(4.62-ish GB)
Reserved block count: 1211796
現在、どのくらいの空き容量がありますか?ここだよ!
Free blocks: 104090586
...
そして、すべての重要なブロックサイズ。乗算に便利です。
Block size: 4096
...
これらの行は、ブロックが予約されているWHOを示しています...この場合、ユーザー0、ルート、
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
...
ここにはさらに多くの情報がありますが、これにより、どれだけの量が利用可能で、どれだけ多くのものがrootに予約されているかをすばやく確認できるようになります。簡単な数学。
お役に立てれば。覚えておいてください... manページはあなたの友達です。
これは、「/パス」に関連するパーティションの空き容量をバイト単位で表示します
printf '%s' $(($(stat -f --format='%f*%S' /path)))
実行するためにスーパーユーザーである必要はありません。
ところで私はどういう違いがあるのかよくわかりません
%sブロックサイズ(高速転送用)
%S基本ブロックサイズ(ブロックカウント用)
stat
の使用中。