Linuxで使用量の多いディレクトリを簡単に探す方法/コマンド例

Linuxを使っていて次の場面に遭遇

  • なんかディスク容量が圧迫されてる
  • でも何が圧迫の原因か分からない
  • 使用量の多いディレクトリを見つけねば

そういう場面において役立つ方法です。

ほとんどのLinux系OSで有効なやり方なので、
コマンド例と一緒に見つけ方を記録しておきます。

キッカケはAWSでディスク使用量を調べた時

僕はとある用途でAWSを使ってます。

▼ 実際に使ってるEC2とかのスペック

  • EC2 : t4g.small
  • OS : Amazon Linux
  • EBS容量 : 8GiB

EBSは拡張可能なストレージです。

8GiBじゃ少なすぎる感じもしますが、
少しでも使用料を抑えたいから仕方ない…

 

そしてある時、ディスク容量を調べました。

▼ ディスク容量はdfコマンドで取得可能

上記の /dev/xvda1 がディスク使用量です。
なんと8Gのうち、6.1Gも消費してました。残り2.0G...

最終手段はEBS容量を普通に増やせばいいだけ

だけどディスク圧迫要因も知りたいので、
使用量の多いディレクトリを見つけることにしました。

ディレクトリの使用量はduコマンドで検索可能

使うべきコマンドはduコマンドです。

▼ duコマンドについて詳しく

「du」は、ディスクの使用量をディレクトリごとに集計して表示するコマンドです。ファイルを指定した場合は指定したファイルのサイズのみ、ディレクトリを指定した場合はそのディレクトリおよび全てのサブディレクトリの使用量を集計します。対象を指定しなかった場合は、カレントディレクトリの使用量が表示されます。

なお、アクセス権限のないファイルやディレクトリについては、集計対象となりません。システム全体をチェックしたい場合は、「root」ユーザーで実行しましょう。

引用元 : https://atmarkit.itmedia.co.jp/ait/articles/1610/25/news016.html

▼ duコマンドの基本使用例

上記コマンドでは /var/www/html/*  として末尾にワイルドカードしてます。こうすると内部デイレクトリに対してディスク使用量を表示してくれます。

この例のように左側の数字がデイレクトリが消費してるバイト数です。ただしduコマンドはファイル容量は表示しない(= 常に4)ことに注意です。またオプションとして -k  を付けるとキロバイト単位、 -m  を付けるとメガバイト単位で表示も可能

このduコマンドが役に立ちます。

ルートディレクトリ内を使用量の多い順に並べる

ルートデイレクトリを起点に調べます。

▼ duコマンドで最も使用量の多いdirを検索

ルートの直下ディレクトリの使用量を全て調べ、それをサイズ降順でソートし、あとは上位10ディレクトリを表示してるだけです。

どうやら /usr , /var の使用量が多いことが判明

使用量の多いデイレクトリ内でさらに絞込

あとは地道に使用量の多いデイレクトリを探すだけです。

▼ duコマンドで /var/* をさらに絞込み

なるほど、/var/log/* の使用量が多いのか…

ここはログ関係だから削除しても大丈夫か…

という感じでduコマンドを駆使し、
使用量が多いディレクトリを見つけられました。

あとはよしなに対処してください。