🐯

Linux / Mac でディスク容量逼迫の原因を探るコマンド

2023/07/02に公開

概要

急にサーバがエラーを返すようになった!?
と思ってサーバに入ると空き容量がほぼゼロ!

ログがいっぱいなのか!?と思って見てみたけどそうでもなさそう。

一体どこが容量食ってるんだ!?

となった時にとりあえず試してみるコマンドです。
急ぎでなくてもちょっとファイル整理しようかなと思った時なんかにも使います。

想定環境

Linux(Amazon Linux, Amazon Linux2, Debian12)
Mac(Zsh)
など。若干コマンドのオプションに違いはあるかもしれないですがほとんどいけるんじゃないかと思います。

対象読者

最近 Bash とか Zsh とか使うようになって、
サーバにログインする事も増えたけどいまいちコマンドとかよくわからない感じのジュニアの方

結論

大体こんな感じです。
検索したいディレクトリ配下のフォルダの使用量を全部出力しつつ、大きい順に並び替えます。
が、サブディレクトリが多すぎる時にはめっちゃ時間食うと思われるので本番環境などでうかつに実行されませんよう。

$ du -ah 検索したいディレクトリ | sort -hr

取得する件数を絞りたい時

サブディレクトリが多すぎるとそもそも表示結果が流れてしまって結局一番大きいのはどこだったんだ・・・となるので、
head で上位 20 件までを表示するように結果を絞ります。
20件まで絞ったからって全件実行されてないわけじゃないので本番環境などでうかつに実行されませんよう。

$ du -ah 検索したいディレクトリ | sort -hr | head --lines 20

Mac の場合

Mac で実行する場合は head コマンドのオプションが少し違いました。

$ du -ah 検索したいディレクトリ | sort -hr | head -n 20

cache とかからゴミファイルがたくさん出てきてビビる事、たまにありますよね。(私だけ?)

Discussion