df コマンドとは
df コマンドは、システムにマウントされているファイルシステムの ディスク容量・使用量・空き容量 を表示するコマンドです。
実務では、サーバのディスク使用状況を監視したり、空き容量不足を調査する際に利用されます。
構文(Syntax)
df [オプション] [FILE...]
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | すべてのマウントされたファイルシステムの容量を表示(1Kブロック単位) | df |
-h | 人間が読みやすい形式(KB, MB, GB)で表示 | df -h |
-H | 10進接頭辞(1K=1000)で表示 | df -H |
-T | ファイルシステムの種類を表示 | df -T |
-i | inode の使用量を表示 | df -i |
-t TYPE | 指定したタイプのファイルシステムのみ表示 | df -t ext4 |
-x TYPE | 指定したタイプのファイルシステムを除外 | df -x tmpfs |
--total | 合計値を表示 | df -h --total |
du と df の違い
df と du はどちらもディスク容量に関するコマンドですが、確認する対象が異なります。
| コマンド | 確認対象 | 主な用途 |
|---|---|---|
df | ファイルシステム(パーティション)単位 | 「ディスク全体の空き容量がどのくらいか」を確認する |
du | ファイル・ディレクトリ単位 | 「どのファイルやディレクトリが容量を使っているか」を調べる |
典型的な使い方としては、まず df -h でディスク全体の空き容量を確認し、空きが少ない場合に du で原因となっているディレクトリやファイルを特定します。
実行例
標準的なディスク使用量の表示
df
出力例:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 205113600 5021348 190982456 3% /
tmpfs 1638400 12 1638388 1% /run
人間が読みやすい形式で表示
df -h
出力例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 196G 4.8G 182G 3% /
tmpfs 1.6G 12K 1.6G 1% /run
ファイルシステムの種類を含めて表示
df -T -h
出力例:
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 196G 4.8G 182G 3% /
tmpfs tmpfs 1.6G 12K 1.6G 1% /run
inode 使用状況を確認
df -i
出力例:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 12451840 15125 12436715 1% /
合計を含めて表示
df -h --total
出力例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 196G 4.8G 182G 3% /
tmpfs 1.6G 12K 1.6G 1% /run
total 198G 4.8G 184G 3%
エラー例(存在しないディレクトリを指定)
df /missing
出力例:
df: /missing: No such file or directory
容量確認の実務例
ディスクがひっ迫したときの初動確認
まず df -h でどのファイルシステムが逼迫しているかを確認します。使用率が高いパーティションが見つかったら、du で原因となるディレクトリを特定します。
# ① 全体の使用率を確認
df -h
# ② 80% 以上使用しているファイルシステムを抽出
df -h | awk 'NR==1 || int($5) >= 80'
tmpfs を除外してディスク使用量を確認
df -h -x tmpfs -x devtmpfs
出力例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 196G 4.8G 182G 3% /
/dev/sdb1 100G 20G 80G 20% /data
inode が枯渇していないかチェック
ディスクに空き容量があるのにファイルを作成できない場合は、inode が枯渇している可能性があります。
df -i
出力例:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 12451840 12451800 40 100% /
IUse% が 100% に近い場合は、小さなファイルが大量に作成されています。du -a でファイル数の多いディレクトリを調べましょう。
使用率 90% 超のパーティションを検出
# 使用率が 90% を超えたファイルシステムを表示
df -h | awk 'NR>1 && int($5) > 90 {print "Warning: "$6" is "$5" full"}'
ファイルを削除しても df の使用量が減らない場合
rm でファイルを削除しても df の使用量が減らないことがあります。これは、そのファイルをプロセスが開いたままにしている場合、ファイルシステム上の実体(inode)が解放されずに容量を占有し続けるためです。lsof で (deleted) と表示されるファイルがないか確認し、該当プロセスを再起動またはファイルディスクリプタを閉じることで解放されます。
# 削除済みだがプロセスに握られたままのファイルを探す
lsof +L1
ログ肥大化などディスク逼迫の初動対応はディスク逼迫の初動対応|ログ肥大と「deletedハンドル」を最短で片づける実務手順で詳しく解説しています。
よくある質問(FAQ)
df コマンドの単位を変更するには?
-h で人間が読みやすい単位(KB/MB/GB)、-H で1000区切りの単位、--block-size=M のように --block-size を指定すれば任意のブロックサイズで表示できます。
df --block-size=M
df コマンドの結果を自動で監視したい場合は?
df を定期実行して閾値を超えたら通知する仕組みは、cron と組み合わせて構築できます。具体的な実装例はディスク容量不足を自動通知する仕組みを作る方法|dfとcronで監視を参照してください。
df と du のどちらを使えばよいですか?
まず df -h でディスク全体の空き容量を確認し、容量不足の原因となっているディレクトリやファイルを特定したい場合は du を使います。両コマンドを併用した容量不足の切り分け手順は容量不足を防ぐ!df・duコマンドでディスク使用量をチェックする基本でも解説しています。
関連コマンド
備考
- デフォルトでは 1K ブロック単位で表示されるため、通常は
-hを付けて確認するのが便利です。 dfはファイルシステム単位での使用量を確認するのに向き、ファイル単位ではduを利用します。- ネットワークマウント(NFS など)も表示対象になります。
参考
- manページ: man7.org df(1)
- GNU Coreutils: https://www.gnu.org/software/coreutils/

コメント