ディスク容量確認コマンドについて

ディスク容量を調べる際によく使われるコマンドとして dfdu があります。

df は各ファイルシステムとマウント先、及び全体容量・使用量を確認したいときによく使われます。

du はディレクトリやファイルサイズを確認したいときに使います。

どちらも良く使われるコマンドなので、覚えておくとよいでしょう。

特に、知らず知らず、どんどん肥大化して行ってサーバに悪影響を与える犯人を捜す際には、du コマンドがかなり役に立ちます。

今回は、du コマンドを使って肥大化しているディレクトリを特定するのとさらにその中で、もっともサイズが大きいファイルを特定する方法についてご紹介します。

まずは、ぽっちゃディレクトリの特定から

du の結果をソートすることで、ディスクの使用量順に並べ替えて表示されるので、使用率の高いディレクトリを特定することが出来ます。

-S オプションは、該当ディレクトリのサーブディレクトリを出力結果に含まないようにします。 見やすくなるので、付けたほうがよいです。

肥大化ディレクトリ特定
# du -S / | sort -n
0       /dev/.udev/links/root
0       /dev/.udev/links/rtc
0       /dev/.udev/links/scd0
・・・
96796   /usr/lib/locale
109316  /usr/bin

出力結果は、キロバイト単位なので、/usr/bin が 約 100MByte くらい使われていることが分かります。

du -h オプションについて

du -hS / | sort -n のように -h オプション を付けると 996K、98M のように分かりやすい出力結果にはなりますが、KM 文字が混ざってしまうことによってソートする意味がなくなるので、単純に -S だけ付けます。

さらにさらに

さらに、特定サイズ以上のファイルリストと容量を確認します。

ファイルサイズは、適切に指定してください。

肥大化ファイル特定
# find /usr/bin -size +3M | xargs ls -lh | sort -n
-rwxr-xr-x 1 root root 3.1M  2月  9 03:59 2013 /usr/bin/myisamchk
-rwxr-xr-x 1 root root 3.1M  2月  9 03:59 2013 /usr/bin/mysql
-rwxr-xr-x 1 root root 3.9M  8月 21 14:38 2014 /usr/bin/php
-rwxr-xr-x 1 root root 3.9M  8月 21 14:38 2014 /usr/bin/php-cgi
-rwxr-xr-x 1 root root 4.1M  8月 21 14:38 2014 /usr/bin/zts-php
-rwxr-xr-x 1 root root 4.3M  2月 22 09:13 2013 /usr/bin/gdb

コマンド一発で調べる方法

例えば、ルート配下を全部調べて特定サイズ以上のファイルだけ調べたいときには以下のようにします。

面倒くさがり屋の方々へ
# find / -size +10M | xargs ls -lh | awk '{print $5,$10}' | sort -n
14M /boot/initramfs-2.6.32-220.4.1.el6.x86_64.img
14M /boot/initramfs-2.6.32-220.4.2.el6.x86_64.img
15M /boot/initramfs-2.6.32-358.23.2.el6.x86_64.img
16M /usr/lib64/libicudata.so.42.1
18M /var/lib/mysql/ibdata1
23M /var/lib/rpm/Packages
32M /sys/devices/pci0000:00/0000:00:02.0/resource0
32M /sys/devices/pci0000:00/0000:00:02.0/resource0_wc
95M /usr/lib/locale/locale-archive

これでいかがでしょうか。

見た目も分かりやすく、肥大化したディレクトリとファイルを簡単に調べることができます。

以上、肥大化したディレクトリとファイルの特定 でした。