たとえば、見てみましょう。
- 「/」またはルートファイルシステムサイズは10 GBで、現在100%使用されています。
- 「/usr」は「/」の下のディレクトリです。
- "/usr/something"は別々の論理ボリュームまたはマウントポイントであり、大丈夫です。
- "/var"は別々のLVで、見やすいです。
ルートボリュームでどのディレクトリ/ファイルがディスク容量を消費しているかを確認するときは、以下のように "du"コマンドを使用してください。
du -sh /*
ただし、これには他のパーティション/ボリュームも含まれます。
du -x -sh /*
それは同じことをします。他のディスクボリュームは除外されません。ただし、マニュアルページには次のように記載されています。
-x、--one-file-system他のファイルシステムのディレクトリをスキップする
ルートファイルシステムでディスク容量の大部分を占める「/usr」が「/」の下のディレクトリの場合、「du -x -sh /usr/*」を実行すると「/usr/も報告されます。何か」「これは別途のディスクでサイズが大きく、コマンドが終了すると多くの遅延が発生します。
ポイント:「du」コマンドまたは他のコマンドを実行するときに、そのディレクトリ/ファイルシステムの下にある別のディスクボリュームを除いて、「1つのファイルシステム」のみを表示してディスク使用量と犯人ファイルを識別する方法は?
ありがとうございます!
答え1
du
あなたの指示に正確に従います。
-x
他のファイルシステムのディレクトリをスキップしますが、コマンドラインのオプションではないすべての引数に対してこれを行います。
実行すると詳細情報を教えてくれるそうdu -x -sh /*
です。du
みんな/
ファイルとディレクトリ他のファイルシステムのマウントポイントかどうかに関係なく。
du
単一の引数を使用しないと、/*
すべてのパス名がに拡張されます/*
。シェルは/*
次に展開されます。みんなファイル/ディレクトリ/ソケット/fifos/etc名を一致させて/
渡しますdu
(実際に.
「隠し」ファイル名で始まるファイル名を除くすべての名前 -dotglob
シェルオプションが設定されていない場合)。表示man bash
と検索Pathname Expansion
おそらくあなたが望むのはdu
(-d
別名--max-depth
)オプションを使用することです。例えば
# du -h -x -d 1 /
512 /media
8.7M /var
512 /srv
1.4G /opt
10K /tmp
512 /mnt
512 /boot
1.1M /etc
13K /run
512 /home
97M /usr
1.5G /
他のファイルシステム(例:/ proc)が出力からどのように除外されるかを参照してください。これは-d 1
、最大深度と一致しても独自のファイルシステムでもあるため、除外されてこれらのマウント/
ポイントにドロップダウンされ-x
ないdu
ためです。
注:-d
はい、非標準(例:非POSIX)オプションですdu
。ただし、GNUバージョンと* BSDバージョンの両方で使用でき、du
おそらく他のバージョンでも使用できます。つまり、これは確かにLinuxとFreeBSDで動作し、他の最新のUNIXシリーズシステムではほとんど確実に動作しますが、おそらく古代または独自のUNIXでは動作しません。
あなたの質問()のマニュアルページからの抜粋は、あなたがGNUバージョンのGNUを-x, --one-file-system skip directories on different file systems
使用していることを示しています。du
coreutils