システム管理 初級

ディスク使用量の確認と管理

dfコマンドとduコマンドを使って、ディスクの空き容量やファイル・ディレクトリのサイズを調べる方法を学ぶ

ディスクの空き容量が足りなくなったとき、「どこにそんなに使っているのか?」を調べるのは大切なスキルです。 Linuxでは dfdu という2つのコマンドを組み合わせることで、ディスク使用状況を素早く把握できます。

df コマンド:ファイルシステム全体の空き容量を確認する

df(disk free)は、マウントされているファイルシステムの使用量と空き容量を表示します。

df

出力はバイト単位で読みにくいため、-h(human-readable)オプションをつけると見やすくなります。

df -h

出力例:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   23G   25G  48% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
/dev/sdb1       100G   80G   18G  82% /data

各列の意味:

列名説明
Filesystemデバイス名またはファイルシステム
Size合計サイズ
Used使用済み容量
Avail利用可能な容量
Use%使用率
Mounted onマウントポイント

特定のディレクトリが属するファイルシステムだけを確認するには、パスを引数に渡します。

df -h /home

du コマンド:ディレクトリ・ファイルのサイズを調べる

du(disk usage)は、指定したディレクトリやファイルが実際に使っているディスク容量を表示します。

du /var/log

こちらも -h をつけると単位が読みやすくなります。

du -h /var/log

合計だけを表示する(-s オプション)

サブディレクトリを再帰的に全部表示するのではなく、指定したパスの合計だけ見たいときは -s を使います。

du -sh /var/log

出力例:

256M    /var/log

直下のサブディレクトリごとのサイズを確認する

どのサブディレクトリが大きいかを調べるには、--max-depth=1(または -d 1)を使います。

du -h --max-depth=1 /var

出力例:

4.0K    /var/backups
256M    /var/log
12G     /var/lib
1.2G    /var/cache

大きいディレクトリを上位から探す

du の出力を sort にパイプして大きい順に並び替えると、容量を食っているディレクトリを素早く特定できます。

du -h --max-depth=1 /var | sort -rh
  • sort -r:逆順(大きいものを上に)
  • sort -h-h オプションで出力されたサイズ(KMG つき)を正しく比較する

出力例:

12G     /var/lib
1.2G    /var/cache
256M    /var/log
4.0K    /var/backups

ホームディレクトリで大きいものを探す場合:

du -h --max-depth=1 ~ | sort -rh | head -10

head -10 で上位10件だけ表示します。

特定の拡張子のファイルを合計する

ログファイルだけの合計サイズを知りたいときは find と組み合わせます。

find /var/log -name "*.log" | xargs du -sh --total 2>/dev/null | tail -1

または、単純に特定ディレクトリ内の合計を確認:

du -sh /var/log/*.log 2>/dev/null

inode の使用状況を確認する

ディスクの空き容量がある(df -h では余裕あり)のにファイルが作れないことがあります。これは inode が枯渇している場合です。

df -i

出力例:

Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda1      3276800 250000 3026800    8% /

IUse% が 100% に近い場合は inode 不足です。大量の小さなファイルが原因のことが多いので、du で調べてから対処します。


練習問題

問題 1

ルートファイルシステム(/)のディスク使用率を人間が読みやすい形式で表示してください。

問題 2

/tmp ディレクトリの合計サイズを1行で表示してください。

問題 3

/usr ディレクトリ直下のサブディレクトリを、サイズの大きい順に上位5件表示してください。


解答

解答 1

df -h /

または、全ファイルシステムを表示して確認:

df -h

/ の行の Use% 列が使用率です。

解答 2

du -sh /tmp

-s で合計のみ、-h で人間が読みやすい単位(K/M/G)を指定しています。

解答 3

du -h --max-depth=1 /usr | sort -rh | head -5

--max-depth=1 で直下のサブディレクトリのみ対象にし、sort -rh で大きい順に並び替え、head -5 で上位5件に絞ります。