Linuxのディスク逼迫をディレクトリ単位で絞り込む
しろまえ殿がLinuxの空き容量不足を調べたとき、最初に細かなファイルを掘るのは避けた。 まずディレクトリ単位で集計し、容量を消費している場所を上位から絞り込む。
この順番なら、調査対象を早く小さくできる。
最初に全体像を出す
du(ディスク使用量を集計するコマンド)に、-h(読みやすい単位で表示する指定)と
--max-depth=1(1階層目までで集計を止める指定)を付ける。
du -h --max-depth=1 .
サブディレクトリごとの合計に加えて、最後にカレントディレクトリ全体の行も表示される。 個別のファイルへ降りる前に、全体と内訳の差を見られるのが利点だ。
たとえば本棚の中身を一冊ずつ数える前に、棚ごとの冊数を数えるようなものだ。
大きい場所から見る
表示順が見づらいときは、sort -rh(K/M/Gなどの単位を解釈して大きい順に並べる指定)へ渡す。
上位だけを見るならhead(先頭から指定行数を取り出すコマンド)も続ける。
du -h --max-depth=1 . | sort -rh | head
このワンライナーで、調査開始時に確認すべきディレクトリを先に把握できる。 削除や移動はまだ行わず、まず出力された場所の用途と保持期間を確認する。
直下の各ディレクトリだけを一覧したい場合は、次の形も使える。
du -sh ./*/ | sort -rh
-s(各対象を合計1行で表示する指定)を使うため、結果が簡潔になる。
ただし、隠しディレクトリは./*/に含まれない。見落としを避ける必要がある場合は、
最初の--max-depth=1 .の形を優先する。
数字を見た後の確認
しろまえ殿は、最大のディレクトリを見つけても、すぐに中身を消さなかった。 ログ、キャッシュ、バックアップ、実データでは安全な扱いが異なるからだ。
まず次の順で確認する。
1. 容量の大きいディレクトリを再集計する。 2. ファイルの更新日時と用途を確認する。 3. 保持期限や復旧手順を確認する。 4. 不要と確定したものだけを、個別に整理する。
調査コマンドは原因候補を示す道具であり、削除の許可証ではない。 この一線を守れば、空き容量の回復とデータ保全を両立できる。
容量調査は、広い範囲を一度に見るほど判断しやすい。
duで地図を描き、必要な場所だけを深掘りする運用が、最初の一手として扱いやすい。