はじめに

こんにちは!今回はdfコマンドについて解説します。

dfはディスク容量の使用状況を確認するコマンドです。“disk free"の略ですね。

サーバー運用では、ディスク容量の監視は超重要です。容量が足りなくなるとシステムが止まったり、ファイルが保存できなくなったりします。dfコマンドで定期的に確認することは、システム管理の基本中の基本ですよ。


dfコマンドとは

dfは、マウントされているファイルシステムのディスク使用量を表示する外部コマンドです。

各ファイルシステムについて、総容量・使用済み・利用可能・使用率を表示します。複数のディスク(HDD、SSD)やパーティションが接続されている場合、それぞれの状態を一覧で確認できます。

主な用途:

  • ディスク容量の監視
  • ファイルシステムの状態確認
  • 容量逼迫の早期発見

基本構文

1
df [オプション] [ファイル/マウントポイント]

指定なしで全ファイルシステムを表示します。


主なオプション

オプション 説明
-h 人間が読みやすいサイズ表示(K、M、G)
-H 1000進数で表示(K=1000)
-B ブロックサイズを指定
-i inode使用状況を表示
-T ファイルシステムタイプを表示
-a 0サイズのファイルシステムも表示
-t 指定したタイプのみ表示
-x 指定したタイプを除外

使用例

例1: ディスク使用量を簡潔に表示

1
df

実行結果:

1
2
3
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       20511312 8234567  11276745  43% /
tmpfs              16384      12     16372   1% /run

全ファイルシステムのディスク情報を表示します。単位が1024バイト(K)なので、大きなディスクは読みづらいです。


例2: 人間が読みやすい形式で表示(推奨)

1
df -h

実行結果:

1
2
3
4
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G  7.8G   11G  43% /
tmpfs            16M  12K   16M   1% /run
/dev/sdb1       100G  45G   55G  45% /home

-hオプションで自動的にサイズを調整(K→M→G→T)して表示します。最も常用される形式です。


例3: ファイルシステムタイプを表示

1
df -hT

実行結果:

1
2
3
4
Filesystem     Type     Size  Used Avail Use% Mounted on
/dev/sda1      ext4      20G  7.8G   11G  43% /
tmpfs          tmpfs     16M  12K   16M   1% /run
/dev/sdb1      ext4     100G  45G   55G  45% /home

ファイルシステムタイプ(ext4、ntfs、nfsなど)を表示します。システム管理で便利です。


例4: inode使用状況を表示

1
df -hi

実行結果:

1
2
3
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/sda1       1.3M  523K  777K   41% /
tmpfs           4.0M    2.0K  4.0M    1% /run

inode(ファイル数の上限)の使用状況を表示します。小さなファイルが多い場合に重要です。


例5: 特定のファイルシステムのみ表示

1
df -h /

実行結果:

1
2
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G  7.8G   11G  43% /

ルートパーティション(/)のみ表示します。特定のマウントポイントを指定できます。


例6: 特定タイプのみ表示

1
df -h -t ext4

実行結果:

1
2
3
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G  7.8G   11G  43% /
/dev/sdb1       100G  45G   55G  45% /home

ext4ファイルシステムのみ表示します。複数のファイルシステムがある場合に便利です。


例7: 特定タイプを除外

1
df -h -x tmpfs -x devtmpfs

実行結果:

1
2
3
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G  7.8G   11G  43% /
/dev/sdb1       100G  45G   55G  45% /home

tmpfsなどのメモリベースのファイルシステムを除外します。実ディスクのみ表示する時に便利です。


例8: 1000進数で表示

1
df -H

実行結果:

1
2
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        21G  8.2G   12G  43% /

1000進数(K=1000バイト)で表示します。ストレージメーカーと同じ単位です。


例9: 容量警告チェック(使用率80%以上を検出)

1
df -h | awk '$5 >= 80 {print}'

実行結果:

1
/dev/sdc1       50G  42G   8G  85% /data

使用率が80%以上のファイルシステムのみ表示します。容量ピンチの早期発見に使えます。


例10: 定期監視スクリプト

1
df -h | grep -E "([8-9][0-9]|100)%"

実行結果:

1
/dev/sdc1       50G  42G   8G  85% /data

使用率80%以上を検出します。cronで定期実行して容量監視できます。


Tips・注意点

-hオプションはほぼ必須

1
2
3
4
5
6
7
# ✗ 読みづらい
df
Filesystem     1K-blocks    Used Available Use%

# ✓ 読みやすい
df -h
Filesystem      Size  Used Avail Use%

サイズの単位が明確でないデフォルト表示は実用的ではありません。-hオプションは常に付けましょう。


inodeも監視対象

1
2
3
4
5
6
# ディスク容量はまだあるが、inode枯渇でファイル作成失敗
$ df -h
/dev/sda1      100G  30G   70G  30%

$ df -i
/dev/sda1      1.0M  999K  1K   99%  # ファイル数の上限に達した!

ディスク容量に余裕があってもinode枯渇でファイル作成に失敗することがあります。


NFS等のマウントは遅延する

1
2
3
# NFS接続先がダウンしている場合、dfが応答しなくなる可能性
# タイムアウト対策:
timeout 5 df -h

ネットワークファイルシステムは接続先がダウンすると応答が遅延します。


dfとduの違い

1
2
3
4
5
# df:ファイルシステム全体の使用状況
df -h /

# du:ディレクトリ配下の使用容量を詳細表示
du -sh /home/*

dfはファイルシステム単位、duはディレクトリ単位で表示します。


実践的な使い方

ディスク容量チェック(日常運用)

1
df -h

毎日の運用チェックの最初のステップです。容量警告や問題がないか確認します。


システム全体のディスク構成を理解する

1
df -hT

マウントポイントとファイルシステムタイプを一覧で確認します。サーバーの構成把握に役立ちます。


ログディレクトリの容量監視

1
df -h /var/log

ログは日々増え続けるため、ディスク圧迫の原因になります。ログの容量監視は重要です。


容量逼迫アラート(自動通知)

1
2
3
4
5
6
7
8
#!/bin/bash
THRESHOLD=80
df -h | awk -v THRESH=$THRESHOLD 'NR>1 {
  usage=$(echo $5 | sed "s/%//")
  if [ "$usage" -ge "$THRESH" ]; then
    echo "Warning: $1 ($5)"
  fi
}'

スクリプト化して、容量が危機的に達したら管理者に通知できます。


まとめ

dfコマンドのポイント:

  • 基本形式df -h(最も常用)
  • ファイルシステムタイプ表示df -hT
  • inode監視df -hi
  • 特定パーティション表示df -h /
  • 容量警告検出df -h | awk '$5 >= 80'
  • 重要な監視対象:ディスク容量+inode使用状況
  • 定期的なチェックがシステム管理の基本

サーバーの安定運用にはディスク容量監視が必須です。df -hを習慣的に確認することで、容量ピンチを早期に発見できますよ!