df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例

コマンドリファレンス

df コマンドとは

df コマンドは、システムにマウントされているファイルシステムの ディスク容量・使用量・空き容量 を表示するコマンドです。
実務では、サーバのディスク使用状況を監視したり、空き容量不足を調査する際に利用されます。

構文(Syntax)

df [オプション] [FILE...]

主なオプション一覧

オプション説明使用例
(なし)すべてのマウントされたファイルシステムの容量を表示(1Kブロック単位)df
-h人間が読みやすい形式(KB, MB, GB)で表示df -h
-H10進接頭辞(1K=1000)で表示df -H
-Tファイルシステムの種類を表示df -T
-iinode の使用量を表示df -i
-t TYPE指定したタイプのファイルシステムのみ表示df -t ext4
-x TYPE指定したタイプのファイルシステムを除外df -x tmpfs
--total合計値を表示df -h --total

du と df の違い

dfdu はどちらもディスク容量に関するコマンドですが、確認する対象が異なります。

コマンド確認対象主な用途
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コマンドでディスク使用量をチェックする基本でも解説しています。

関連コマンド

  • du : ディレクトリやファイルごとの使用量を表示
  • ls -lh : ファイルのサイズを確認
  • mount : マウントされているファイルシステムを確認
  • stat : ファイルの詳細情報を表示

備考

  • デフォルトでは 1K ブロック単位で表示されるため、通常は -h を付けて確認するのが便利です。
  • df はファイルシステム単位での使用量を確認するのに向き、ファイル単位では du を利用します。
  • ネットワークマウント(NFS など)も表示対象になります。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント