Linuxシステムやサーバーの運用管理において、ストレージの空き容量を正確に把握することは極めて重要な業務の一つです。
システムが稼働し続ける中で、ログファイルの肥大化や一時ファイルの蓄積により、予期せずディスク容量が不足する事態は珍しくありません。
このような状況を未然に防ぎ、現在のストレージ使用状況を瞬時に確認するために最も汎用的に使われるのが「df」コマンドです。
本記事では、Bash環境でdfコマンドを使いこなし、ディスク容量を確認する手法や主要なオプション、出力結果の読み方について詳しく解説します。
dfコマンドの役割と重要性
df(disk free)コマンドは、LinuxやUnix系オペレーティングシステムにおいて、ファイルシステムのディスクスペースの使用状況を表示するための標準的なツールです。
このコマンドを使用することで、どのパーティションがどれだけの容量を持ち、現在どの程度使用されているかを一目で確認できます。
特にサーバー管理においては、ディスクの空き容量がゼロになる「ディスクフル」の状態を避けることが最優先事項となります。
ディスク容量が不足すると、アプリケーションのデータ保存が失敗するだけでなく、OS自体の起動や動作に致命的な支障をきたすためです。
2026年現在のモダンなITインフラにおいても、クラウドストレージや仮想ディスクの容量管理は依然としてエンジニアの必須スキルといえます。
dfコマンドの基本的な使い方
最もシンプルな使い方は、オプションを指定せずにdfと入力して実行することです。
# オプションなしで実行
df
実行すると、システムにマウントされているすべてのファイルシステムに関する情報が表示されます。
Filesystem 1K-blocks Used Available Use% Mounted on
udev 4005344 0 4005344 0% /dev
tmpfs 805404 1160 804244 1% /run
/dev/sda1 51343740 12435680 36270132 26% /
tmpfs 4027012 0 4027012 0% /dev/shm
標準の状態では、容量の単位が「1KB(1024バイト)ブロック」として表示されるため、人間にとっては直感的に理解しにくい場合があります。
しかし、スクリプトで数値を処理する場合や、厳密なブロック単位での計算が必要な場合にはこの形式が適しています。
出力項目の見方
dfコマンドの出力結果には、以下の主要な項目が含まれています。
| 項目名 | 内容の解説 |
|---|---|
| Filesystem | 物理的なディスクパーティションや仮想的なデバイスの名前を表示します。 |
| 1K-blocks | 1KB単位での合計容量を示します。 |
| Used | 現在使用されている容量の合計です。 |
| Available | 現在利用可能な(空いている)容量です。 |
| Use% | 合計容量に対する使用量の割合をパーセントで表示します。 |
| Mounted on | そのデバイスがシステム上のどのディレクトリ(マウントポイント)に接続されているかを示します。 |
運用管理において特に注目すべきは、「Use%」と「Mounted on」の項目です。
ルートディレクトリ(/)やログ保存先(/var/logなど)の使用率が90%を超えている場合は、速やかな対応が求められます。
可読性を高める主要オプション
dfコマンドには、出力をカスタマイズするための多くのオプションが用意されています。
日常的な操作で最も頻繁に利用されるものを中心に紹介します。
人間が読みやすい単位で表示する(-hオプション)
-h(–human-readable)オプションは、容量を「GB(ギガバイト)」や「MB(メガバイト)」などの分かりやすい単位に変換して表示します。
# 人間に読みやすい形式で表示
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 49G 12G 35G 26% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
「1K-blocks」の列が「Size」に変わり、直感的に残り容量を把握できるようになります。
管理者が手動で確認する際には、このオプションを付けて実行するのが一般的です。
ファイルシステムの種類を確認する(-Tオプション)
-T(–print-type)オプションを使用すると、各パーティションがどのファイルシステム形式(ext4, xfs, btrfs, tmpfsなど)であるかを表示できます。
# ファイルシステムの種類を表示
df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext4 51343740 12435680 36270132 26% /
tmpfs tmpfs 4027012 0 4027012 0% /dev/shm
特定のファイルシステム固有のトラブル調査や、マウント設定の確認に非常に役立ちます。
iノードの使用状況を確認する(-iオプション)
ディスク容量(バイト数)に空きがあっても、「iノード(inode)」が枯渇すると新しいファイルを作成できなくなります。
iノードとは、Linuxがファイルやディレクトリのメタ情報を管理するためのデータ構造です。
小さなファイルが大量に生成されるシステム(大量のセッションファイルやメールキューなど)では、iノードの残量不足が問題になることがあります。
# iノードの使用状況を表示
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 3276800 154200 3122600 5% /
通常のdf -hでは確認できないため、空き容量があるはずなのにファイルが保存できない場合は、必ずこのオプションでiノードを確認してください。
特定の対象に絞って確認する方法
システム全体ではなく、特定のディレクトリやファイルシステムのみを調査したい場合の手法を解説します。
ディレクトリを指定して確認する
特定のディレクトリがどのパーティションに属しているか、そのパーティションの空き容量がどれくらいかを知るには、引数にパスを指定します。
# カレントディレクトリの所属パーティションを確認
df -h .
このコマンドを実行すると、現在のディレクトリが含まれるファイルシステムの情報のみが出力されます。
肥大化したログディレクトリ(/var/logなど)の状況をピンポイントで確認する際に便利です。
特定の型を除外または指定して表示する
多くのネットワークファイルシステムや仮想ファイルシステムが表示されて邪魔な場合は、-xオプションで除外できます。
# tmpfsを除外して表示
df -h -x tmpfs
逆に、特定の型のみを表示したい場合は-tオプションを使用します。
# ext4のみを表示
df -h -t ext4
運用管理での実践的なテクニック
dfコマンドは単体で使用するだけでなく、他のコマンドと組み合わせることでより強力なモニタリングツールになります。
使用率の高い順にソートする
どのパーティションが最も逼迫しているかを特定するために、sortコマンドと組み合わせます。
# 使用率(5番目の列)で数値的に逆順ソート
df -h | sort -rnk 5
このワンライナーを使えば、警告が必要なボリュームを即座に見つけ出すことが可能です。
特定の閾値を超えた場合に警告を出すBashスクリプト
ディスク容量の監視を自動化するための簡単なスクリプト例を紹介します。
#!/bin/bash
# 使用率が80%を超えているパーティションを抽出して警告する
THRESHOLD=80
df -h | grep '^/dev/' | while read line; do
usage=$(echo $line | awk '{print $5}' | sed 's/%//')
partition=$(echo $line | awk '{print $1}')
if [ $usage -ge $THRESHOLD ]; then
echo "警告: ${partition} の使用率が ${usage}% に達しています。"
fi
done
このようなスクリプトをcron(定期実行ジョブ)に登録しておくことで、トラブルの芽を早期に摘み取ることができます。
duコマンドとの違いと適切な使い分け
ディスク容量を確認するコマンドとして、dfの他に「du」コマンドがあります。
初心者が混同しやすいこの2つのコマンドの違いを整理しましょう。
- df:ファイルシステム全体の容量を確認する。ファイルシステム単位での管理に向いている。
- du:特定のディレクトリやファイルが占有している容量を確認する。どのファイルが容量を食っているか特定するのに向いている。
まずdfでどのパーティションがいっぱいかを確認し、次にそのパーティション内のどのディレクトリが原因かをduで特定するという流れが、標準的な調査手順です。
なお、「dfの結果では空きがないのに、duの結果を合計しても容量が合わない」という現象が時折発生します。
これは、プロセスが削除済みのファイルを開き続けている場合に起こります。
Linuxではファイルが削除されても、プロセスがそれを掴んでいる限りディスク領域は解放されません。
このような場合は、lsof | grep deletedコマンドを使用して、削除済みファイルを開いているプロセスを特定し、再起動などの処置を行う必要があります。
まとめ
Bashのdfコマンドは、サーバーの健全性を維持するために欠かせない基本的かつ強力なツールです。
df -hによる直感的な確認、df -iによるiノードの監視、そして他コマンドとの連携による自動化は、インフラエンジニアにとって必須のテクニックといえます。
日常的にディスクの使用状況を把握する習慣をつけ、システムトラブルを未然に防ぎましょう。
また、クラウド時代においてはボリュームの拡張が容易になっていますが、無計画な拡張はコスト増加を招きます。
今回紹介したdfコマンドの各オプションを活用し、効率的でクリーンなストレージ管理を目指してください。
