先日、AWS上に乗ったRailsのアプリケーションがうまく動いておらずログを見てみると、No space left on device
というエラーメッセージが吐き出されていました。
ディスクサイズ不足が原因で、空きスペースが足りないためにコンパイル作業ができなかった模様でした。
結局、無駄に容量を食っているファイルを削除して問題を解決したのですが、どこのフォルダ・ファイルが容量を食ってるんだ?と調べる機会は多いと思います。
今回はディスク不足になった時や大きなサイズのファイルを探す時にどのようにすればいいのかについて説明をしたいと思います。
大まかに以下のような手順となります。
- dfコマンドでディスクの使用状況の確認
- duコマンドでディレクトリのサイズを確認
では詳しく説明していきます。
dfコマンドでディスクの使用状況の確認
まずはディスク全体の使用状態を確認します。(結果は適当です)
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 16G 16G 0G 100% /
devtmpfs 993M 56K 993M 1% /dev
tmpfs 1001M 0 1001M 0% /dev/shm
-h
オプションで読みやすい表示になっています。
サンプルの結果ををみると、100%となっているので、ディスク容量がパンパンだということがわかります。
duコマンドでディレクトリのサイズを確認
dfコマンドでディスクの使用状況がわかったので、使用量が多いディレクトリを特定していきます。
そのためにはdu
コマンドを利用します。例えば上位5件を昇順で表示したい場合は以下のようになります。(結果は適当です。)
du -h | sort -rh | head -5
10G .
6.5G ./hoge
4.5G ./hoge/log
1.1G ./moge
1.2G ./fuga
sort -r
で昇順にし、sort -h
で読みやすい形に表示し、head -5
で上位5件を表示しています。
全ての結果を見たいのであればhead
の代わりにmore
を利用するといいです。