【2026年7月最新】dfコマンド完全ガイド|Linuxのディスク容量確認・全オプション・サーバー監視まで徹底解説

【2026年7月最新】dfコマンド完全ガイド|Linuxのディスク容量確認・全オプション・サーバー監視まで徹底解説

「サーバーの空き容量が急に減っている」「ディスクフルでサービスが落ちた」——そんなトラブルを防ぐ最初の一手が、Linuxのdfコマンドです。

dfはLinuxに標準搭載されているコマンドで、サーバーやコンテナのディスク使用状況を瞬時に確認できます。使い方は単純ですが、出力の読み方・各オプションの使い分け・実際の監視運用まで理解している人は意外と少ないのが現実です。

この記事では、dfコマンドの基本から全オプション詳解、inode枯渇問題、duとの違い、80%超過アラートの設定、Claude Codeでの自動化まで、実務レベルで使えるように徹底解説します。単なるコマンドリファレンスではなく、実際にサーバー管理で困るポイントを中心に、競合記事の10倍の情報密度でお届けします。

代表菅澤 代表菅澤
弊社GENAIでは複数のLinuxサーバーとCloud Runコンテナを運用していますが、ディスク監視は今もdfコマンドが基本です。どれだけ高度なインフラを使っても、最終的に「今どこに何GBある?」を確認する瞬間は必ずあります。
AI鬼管理山崎 AI鬼管理山崎
「dfって入門コマンドでしょ?」と思っている人ほど、実は出力を正しく読めていないケースが多いです。今回はそのギャップをしっかり埋めていきます。

この記事を読み終わると、以下のことがすべてできるようになります。

✔️df -h の出力を正確に読み、実際の空き容量を即座に把握できる
✔️-T・-i などの重要オプションを使い分け、必要な情報だけを取り出せる
✔️inode枯渇という「空き容量はあるのにファイル作成できない」問題を診断できる
✔️dfとduの違いを理解し、どちらを使うべきか判断できる
✔️80%超過アラートをシェルスクリプトで実装し、障害を未然に防げる
✔️Claude Codeを使ってディスク監視を全自動化する方法を理解できる
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理
📌 この記事の結論
【2026年7月最新】dfコマンド完全ガイド|Linuxのディスク容量確認・全オプション・サーバー監視まで徹底解説
Linuxのdfコマンドを完全解説。-h/-T/-iなど全オプション詳解、出力の読み方、duとの違い、inode枯渇問題、80%超過アラート設定、Claude Codeでのディスク監視自動化まで実務レベルで網羅します。

01 dfコマンドとは何か(Disk Freeの概念・用途) Linux標準コマンドdfの役割・どんな場面で使うか

dfは Disk Free の略で、Linuxおよびmacosに標準搭載されているコマンドです。マウントされているファイルシステムごとに、ディスクの総容量・使用量・空き容量・使用率・マウントポイントを一覧表示します。

サーバー管理の現場では、次のような場面でdfが登場します。

✔️Webサーバーのログが肥大化していないか定期チェック
✔️データベースのバックアップが正常に完了しているか確認(容量消費を確認)
✔️CI/CDパイプラインのジョブが失敗したときに「ディスクフル」でないか確認
✔️コンテナ(Docker / Cloud Run)のボリューム使用状況の把握
✔️ディスク増設後、正しくマウントされているか確認

📚 用語解説

マウント:ディスクやパーティションをLinuxのディレクトリツリーに接続する操作のこと。Windowsの「ドライブの割り当て(C:\、D:\)」に相当する概念です。例えば /var を別のディスクにマウントすれば、/var 以下のファイルはそのディスクに保存されます。

dfの最大の特徴は速さです。ディスク全体をスキャンするのではなく、OSのマウント情報(/proc/mounts)を参照するだけなので、どれだけ大容量のサーバーでもほぼ瞬時に結果が出ます。これはファイルを一つひとつ集計するduコマンドと大きく異なる点です(詳細は第8章で解説)。

代表菅澤 代表菅澤
Cloud Runのコンテナでディスクを使い切ったとき、まずターミナルに入って df -h を打ちます。何が埋まっているかをdfで確認してから、duで犯人のディレクトリを特定する——この2ステップが鉄板フローです。
💡 dfはLinuxだけじゃない

dfコマンドはmacOSでも使えます。ただし、オプションの動作が微妙に異なります(macOSのdfはBSD由来、LinuxはGNU coreutilsのdf)。例えば-HオプションはmacOSでも使えますが、-Tはmacosでは機能が異なります。サーバー管理の文脈では基本的にLinux(GNU df)の挙動を前提にします。

📚 用語解説

GNU coreutils:Linuxで使われる基本コマンド群(ls, cp, mv, df, du など)のGNU実装。macOSのデフォルトはBSD系の実装で、動作が若干異なることがあります。Linuxサーバー管理を学ぶときは、GNU実装の動作を基準にするのが正解です。

なお、dfコマンドは標準でインストール済みのため、追加インストールは不要です。CentOS / Ubuntu / Debian / Amazon Linux / Alpine Linux — いずれも最初から使えます。

02 dfの出力を読む(各列の意味を完全解説) Filesystem / 1K-blocks / Used / Available / Use% / Mounted on の全列

dfをオプションなしで実行すると、次のような出力が得られます。

$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       51473900 8241420  40600104  17% /
tmpfs            4096000       0   4096000   0% /dev/shm
/dev/sda2      104857600 2048000 100300320   2% /var/log
/dev/sdb1      524288000 314572800 209715200  60% /home/user

各列の意味を一つひとつ解説します。

2-1. Filesystem(ファイルシステム)列

Filesystem列は、そのディスク/パーティションのデバイス名またはファイルシステムの識別子を示します。

表示例意味
/dev/sda1物理ディスクsda(1枚目)の第1パーティション。オンプレサーバーで最もよく見る形式。
/dev/nvme0n1p1NVMe SSDの第1パーティション。クラウドVM(AWS EC2など)でよく見る。
tmpfsメモリ上に作られる仮想ファイルシステム。再起動で消える一時領域。
overlayDockerコンテナで使われる重ね合わせファイルシステム。
shm共有メモリ(/dev/shm)。プロセス間通信に使われる。

📚 用語解説

パーティション:ひとつの物理ディスクを論理的に分割した区画のこと。/dev/sda1, /dev/sda2 のように番号で区別されます。Windowsでいう「Cドライブ」「Dドライブ」の分け方に相当します。

2-2. 1K-blocks(総容量)列

1K-blocks列は、そのファイルシステムの総容量を1KBブロック単位で表示しています。例えば「51473900」なら51,473,900 × 1KB ≈ 49.1GBです。

この列は-hオプションを使えば人間が読みやすい単位(GB、MB)に変換されます(詳細は第4章)。生の数字のままでは直感的に把握しにくいため、実運用では -h を付けることが鉄則です。

2-3. Used(使用量)列

Used列は現在使用中のディスク容量(1KBブロック単位)です。総容量(1K-blocks)からAvailableを引いたものと完全には一致しません。なぜなら、Linuxのext4などのファイルシステムではroot(スーパーユーザー)用に5%の予約領域が確保されているからです。この点は第9章で詳しく解説します。

2-4. Available(空き容量)列

Available列は、一般ユーザーが実際に使える空き容量です。rootユーザーには予約領域も含めた空き容量が提供されますが、一般ユーザーはこのAvailable値までしか書き込めません。

⚠️ 空き容量0でも「Available=0」とは限らない

ディスクフルでファイル書き込みができなくなるのは「Available=0」のときではなく、予約領域まで含めてすべて埋まったときです。Availableが0でも、rootユーザーなら予約領域に書き込めます。ただし一般ユーザーやWEBサーバープロセスはAvailableが0になった時点で書き込み失敗します。

2-5. Use%(使用率)列

Use%列は、(Used ÷ (Used + Available)) × 100 で計算される使用率パーセンテージです。80〜85%を超えたら要注意、90%を超えたら緊急対応が業界のセオリーです。

2-6. Mounted on(マウントポイント)列

Mounted on列は、そのファイルシステムがLinuxのディレクトリツリーのどこに接続されているかを示します。

Mounted onよく使われる用途
/ルートファイルシステム。OSの本体。ここが埋まるとシステムが止まる。
/var/logログ専用パーティション。ログ肥大化がシステムに影響しないよう分離。
/home/userユーザーデータ領域。Webアプリのアップロードファイルなど。
/tmp一時ファイル置き場。再起動で消える。tmpfsでメモリ上に置くことも多い。
/var/lib/dockerDockerのイメージ・コンテナ・ボリューム置き場。要大容量。
AI鬼管理山崎 AI鬼管理山崎
「マウントポイント」が理解できると、「/varだけ容量が足りない」という状況になったとき、/var専用のパーティションを増設するという対処が直感的にわかるようになります。Linuxのディスク設計の根幹です。

03 全オプション一覧と詳解(-h/-H/-k/-m/-a/-l/-t/-T/-i) dfコマンドの全オプションをリファレンスレベルで解説

dfコマンドには多くのオプションが用意されています。以下に主要オプションを一覧で整理します。

オプション意味使用頻度
-hHuman readable。KB/MB/GBなど読みやすい単位で表示(1024進数)★★★ 必須
-HHuman readable(SI単位)。1K=1000バイトで計算★☆☆ まれに使う
-k1KBブロック単位で表示(デフォルト)★☆☆ ほぼ不要
-m1MBブロック単位で表示★☆☆ まれに使う
-g1GBブロック単位で表示★☆☆ まれに使う
-aすべてのファイルシステムを表示(擬似FS含む)★★☆ デバッグ時
-lローカルファイルシステムのみ表示(NFSを除外)★★☆ NFS環境で有用
-t タイプ特定のファイルシステムタイプのみ表示★★☆ 絞り込みに
-Tファイルシステムタイプ(ext4/xfsなど)を列追加して表示★★★ 必須級
-iinode情報を表示(inodeの使用量・空き数)★★★ 重要
--total全体の合計行を末尾に追加★★☆ 集計に便利
-x タイプ特定のファイルシステムタイプを除外して表示★☆☆ まれに使う

📚 用語解説

-h オプション(Human readable):数値を1024進数で自動変換し、読みやすい単位(KB/MB/GB/TB)で表示するオプション。例えば「51473900」(1Kブロック)が「49G」と表示されます。実務では必ず付けるのが鉄則で、単に「df」と打つより「df -h」の方がずっと直感的です。

3-1. -a オプション:すべてのFSを表示

-aオプションを付けると、通常は非表示になっている擬似ファイルシステム(tmpfs, proc, sysfsなど)もすべて一覧に表示されます。

$ df -a
Filesystem     1K-blocks    Used Available Use% Mounted on
sysfs                  0       0         0    - /sys
proc                   0       0         0    - /proc
devtmpfs         4096000       0   4096000   0% /dev
tmpfs            4096000       0   4096000   0% /dev/shm
/dev/sda1       51473900 8241420  40600104  17% /

sysfsやprocは実際のディスク容量を消費しない特殊なFSで、Use%が「-」と表示されます。通常の運用では -a は不要ですが、「なぜこのマウントポイントが見えないのか?」を調査するときに役立ちます。

3-2. -l オプション:ローカルFSのみ表示

-lオプションはNFS(ネットワークファイルシステム)などのリモートマウントを除外して、ローカルのファイルシステムのみを表示します。NFSがレスポンスしない環境でdfを叩くと応答が返らないことがあるため、ローカルだけ確認したい場合に有用です。

# NFSマウントを除外してローカルFSのみ確認
$ df -hl
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        49G  7.9G   39G  17% /
tmpfs           4.0G     0  4.0G   0% /dev/shm
/dev/sda2       100G  2.0G   96G   2% /var/log

3-3. --total オプション:合計行を表示

--totalオプションを付けると、表示されたすべてのファイルシステムの合計を最終行に追加します。複数パーティションがある環境でサーバー全体の使用容量を一発で把握したいときに便利です。

$ df -h --total
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        49G  7.9G   39G  17% /
/dev/sda2       100G  2.0G   96G   2% /var/log
/dev/sdb1       500G  300G  200G  60% /home/user
total           649G  310G  335G  48%
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

04 -hで人間に読みやすく表示する 最もよく使うオプションを徹底解説

-hオプション(--human-readable)は、dfを使うときにほぼ必ず付けるべきオプションです。生の数値(1Kブロック単位)を、人が直感的に読める単位(K/M/G/T)に自動変換して表示します。

# オプションなし(1Kブロック表示)
$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       51473900 8241420  40600104  17% /

# -h オプション付き(読みやすい単位)
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        49G  7.9G   39G  17% /

「51473900」という数字を見て瞬時に「約49GB」とわかる人は少数派です。-h を付けることで「49G」「7.9G」「39G」と表示されるため、ひと目で状況が把握できます

AI鬼管理山崎 AI鬼管理山崎
「df -h」は、もはや「df」と「-h」を別々に考えない方がいいくらいです。ディスク確認 = df -h 、これを反射で打てるようにしておくだけで作業速度が上がります。

4-1. -h と -H の違い(1024進数 vs 1000進数)

-h と -H は表示の単位系が異なります。

オプション単位系計算例(1,073,741,824バイト)使いどころ
-h1024進数(IEC)1.0G(1GiB)Linuxサーバー管理の標準。ほぼこちらを使う。
-H1000進数(SI)1.1G(1GB)ストレージ製品の仕様書(1GB=10億バイト)と合わせたいとき。

実務では-h(1024進数)一択です。OSはバイトを1024単位で管理しているため、-hの方がファイルシステムの実態と一致しています。-H(SI単位)はストレージベンダーの「1TB = 1,000GB」という表記と合わせるために存在しますが、サーバー管理でこれが必要になる場面はほぼありません。

💡 -h + -T の組み合わせが実務の鉄板

df -hT と打つことで、読みやすい単位表示とファイルシステムタイプの表示を同時に実現できます。「どのFSがどのくらい使われているか」が一発でわかるため、サーバーのディスク状況確認の定番コマンドです。

df を実行
-h を付けて人間可読に
-T を追加してFS種類も確認
Use%が80%超なら対処

05 -Tでファイルシステムタイプを表示する ext4/xfs/tmpfs/overlayを識別する重要オプション

-Tオプションは、各ファイルシステムのタイプ(ext4, xfs, tmpfs, overlay など)を追加の列として表示するオプションです。

$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4       49G  7.9G   39G  17% /
tmpfs          tmpfs     4.0G     0  4.0G   0% /dev/shm
/dev/sda2      xfs       100G  2.0G   96G   2% /var/log
overlay        overlay    49G  7.9G   39G  17% /var/lib/docker/overlay2

ファイルシステムのタイプを知ることで、次のような判断ができるようになります。

タイプ特徴・注意点
ext4Linuxの最もポピュラーなFS。デフォルト選択肢。ジャーナリング付き。
xfs大容量ファイルや高スループット向け。CentOS / RHEL系のデフォルト。
tmpfsメモリ上のFS。使用量がメモリを圧迫することがある。再起動で消える。
overlayDockerコンテナのレイヤー構造に使われる。サイズが大きくなりがち。
btrfs次世代FS。スナップショット機能あり。一部ディストリで採用。
nfsネットワーク経由のファイルシステム。レスポンスが遅い場合あり。
vfat / ntfsWindows互換FS。USB・外部ストレージでよく出る。

📚 用語解説

ジャーナリング:ファイルシステムへの変更履歴(ジャーナル)を記録する仕組み。システムが突然シャットダウンした場合でも、ジャーナルをもとにファイルシステムの一貫性を復元できます。ext4とxfsはどちらもジャーナリングに対応しており、本番サーバーのFSとして適切です。

5-1. -t オプション:特定タイプに絞り込む

-t オプション(-T とは別物です)を使うと、特定のファイルシステムタイプだけを表示できます。

# ext4のみ表示
$ df -h -t ext4

# tmpfsのみ表示(メモリ使用量確認)
$ df -h -t tmpfs

# xfsのみ表示
$ df -h -t xfs

5-2. -x オプション:特定タイプを除外する

-x オプションは-tの逆で、特定のファイルシステムタイプを除外します。tmpfsや擬似FSを除外して実際のディスクのみ確認したいときに使います。

# tmpfsを除外してディスクのみ表示
$ df -h -x tmpfs

# overlayを除外してDocker外のFSのみ確認
$ df -h -x overlay -x tmpfs
代表菅澤 代表菅澤
Dockerを使っているサーバーでは overlay や tmpfs がたくさん表示されて見づらいことがあります。-x tmpfs -x overlay で実際のディスクだけに絞れるので、監視スクリプトに組み込むときに重宝しています。

06 -iでinode使用量を確認する(inode枯渇問題) 「空き容量はあるのにファイルが作れない」謎を解く

Linuxのディスク管理で意外と多く遭遇するトラブルが「ディスクの空き容量はあるのに、ファイルの書き込みができない」という現象です。このとき犯人になるのがinodeの枯渇です。

📚 用語解説

inode(アイノード):ファイルの実体データとは別に存在する、ファイルの「メタ情報置き場」のこと。ファイル名ではなく、ファイルのサイズ・作成日時・パーミッション・所有者・ファイル本体の場所を記録しています。inode自体もディスク上に一定数しか確保されておらず、小さいファイルを大量に作るとinode数の上限に達することがあります。

dfにi オプションを付けると、通常のディスク使用量ではなくinodeの使用数・空き数・使用率が表示されます。

$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda1      3276800 842341 2434459   26% /
tmpfs          1024000      1 1023999    1% /dev/shm
/dev/sda2      6553600  12482 6541118    1% /var/log

各列の意味は通常のdfと同様ですが、単位が「バイト」ではなく「ファイル数(inode数)」になっている点が違います。

列名意味
InodesそのFSで使えるinode総数
IUsed使用中のinode数(≒現在存在するファイル・ディレクトリ数)
IFree残りinode数
IUse%inode使用率。これが100%になるとファイル作成不能

6-1. inode枯渇が起きやすい状況

inode枯渇は特定の状況で起きやすいです。

✔️メールサーバー:大量の小さいメールファイルが蓄積される(Maildir形式)
✔️PHPセッションファイル:/var/lib/php/sessions 以下に大量のセッションファイルが溜まる
✔️キャッシュディレクトリ:Webアプリのキャッシュで小ファイルが爆発的に増える
✔️ログローテーション失敗:古いログが小分けに大量蓄積される
✔️tmpディレクトリの放置:一時ファイルが自動削除されずに残り続ける
⚠️ inode枯渇は容量監視だけでは検知できない

Use%(ディスク容量の使用率)が50%でも、IUse%(inode使用率)が100%であればファイルの新規作成は即座に失敗します。ディスク監視スクリプトは容量とinodeの両方を監視対象に含めることが必須です。

6-2. inode枯渇の診断フロー

df -i でIUse%を確認
100%近いFSを特定
ls -la で問題ディレクトリを探索
不要ファイルの削除またはFS拡張

問題のあるファイルシステム(例:/var)でinodeを大量消費しているディレクトリを探すには、各ディレクトリのファイル数を数える方法が有効です。ただし、/var/log/var/lib/phpなど、よく問題になる場所から優先的に確認するのが効率的です。

AI鬼管理山崎 AI鬼管理山崎
inode枯渇の一番怖いところは、エラーメッセージが「No space left on device」と出ることです。「容量がない?でもdfで見たら余裕あるのに!」となって混乱するケースが多い。そこでdf -i を打って初めて「なるほどinodeか」となります。
💡 -ih オプションで読みやすく

df -ih と打つと、inode数も人間可読の単位(K/M)で表示されます。大規模サーバーでinode数が数百万になる場合に見やすくなります。

Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

07 特定のパーティション・マウントポイントを指定する 知りたいFSだけを素早くピンポイントで確認する方法

dfは引数にパスまたはデバイスファイル名を渡すことで、特定のファイルシステムだけを表示できます。

# ルートFSのみ確認
$ df -h /

# /var/log のFSを確認
$ df -h /var/log

# ホームディレクトリのFSを確認
$ df -h /home/user

# デバイスファイル指定
$ df -h /dev/sda1

引数に渡したパスが含まれるファイルシステムを自動的に特定して表示します。例えば /var/log が専用パーティションになっていれば、その情報だけが出ます。/var/log 専用のパーティションがない場合は / のFSが表示されます(/var/log は / の中にあるから)。

7-1. 複数パスをまとめて確認

複数のパスをスペース区切りで指定すると、それぞれのFSをまとめて確認できます。重複するFSは一度だけ表示されます。

# ルートと /var/log を一度に確認
$ df -h / /var/log /home/user

7-2. 監視スクリプトで特定パーティションのみ監視

監視スクリプトでは、全FSではなく重要なパーティション(/、/var/log、/home/user など)のみを対象にすることで、出力を絞って処理しやすくなります。

#!/bin/bash
# ルートとvar/logの使用率をチェック
ROOT_USE=$(df -h / | awk 'NR==2 {print $5}' | tr -d '%')
VARLOG_USE=$(df -h /var/log | awk 'NR==2 {print $5}' | tr -d '%')

echo "/ 使用率: ${ROOT_USE}%"
echo "/var/log 使用率: ${VARLOG_USE}%"

📚 用語解説

awk:テキストを列(フィールド)単位で処理するLinuxコマンド。df の出力から特定の列だけを抽出するときに使われます。「awk 'NR==2 {print $5}'」は「2行目の5列目を表示する」という意味です。dfの出力は1行目がヘッダー、2行目以降がデータなので NR==2 で最初のデータ行を取得します。

08 dfとduの違い・使い分け(Disk Free vs Disk Usage) 混同しやすい2つのコマンドの役割を完全整理

Linuxのディスク確認コマンドとしてdf と並んでよく登場するのがdu(Disk Usage)です。名前が似ているために混同されやすいですが、役割がまったく異なります。

観点df(Disk Free)du(Disk Usage)
目的ファイルシステム全体の容量・空き量確認ディレクトリ・ファイルの使用容量確認
単位ファイルシステム単位ディレクトリ・ファイル単位
速度即座(OSの情報を参照するだけ)遅い(ファイルを一つひとつスキャン)
用途「空きがいくらあるか」を知りたいとき「どこが容量を食っているか」を特定したいとき
出力の視点ファイルシステムの外側から見た使用量ファイルの合計から積み上げた使用量

実務での使い方は、まずdfで全体感を把握し、Use%が高いパーティションをduで深掘りするという二段階が基本です。

df -h で全体確認
Use%が高いパーティションを特定
du -sh で容量の大きいディレクトリを探索
不要なファイルを削除

8-1. dfとduで数値が合わない理由

dfで「使用量が8GB」と出ているのに、そのパーティション内でduをかけると「6GBしかない」というケースがあります。この差が生まれる主な原因は3つです。

✔️削除済みファイルが参照中:プロセスがファイルを開いたまま削除されると、そのファイルはdfには「使用中」として計上されるが、duには見えない。
✔️root予約領域:ext4はデフォルトで5%のブロックをrootに予約。この領域はdfの「Used」には含まれることがある。
✔️スパースファイル:実体のないブロックを持つ特殊ファイル。duとdfで集計方法が異なる。
⚠️ 削除済みファイルの取り扱い

Webサーバーのログファイルをプロセス起動中に削除(rm)してもディスクの空きは増えません。プロセスがそのファイルのファイルディスクリプタを保持しているため、OS上はまだ「使用中」として扱われます。ディスクを解放するには、プロセスを再起動するかlogrotateの設定で正しくローテーションする必要があります。

代表菅澤 代表菅澤
nginxのアクセスログが10GB超えていて削除したのに空き容量が変わらない、という問い合わせを受けたことがあります。nginxを再起動したら即座に空きが増えました。これが「削除済みファイルをプロセスが保持している」問題です。dfとduの乖離を見たら、まずlsofを疑いましょう。

09 dfのフィールド計算(Used+Available≠Totalになる理由) 「なぜ足し算が合わないのか?」を完全解明

dfの出力をよく見ると、Used + Available が Size(Total)と一致しないことに気づきます。

$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        49G  7.9G   39G  17% /

# 計算してみると...
# Used + Avail = 7.9G + 39G = 46.9G
# Size = 49G
# 差分 = 2.1G ← どこへ消えた?

この差分の正体が予約ブロック(reserved blocks)です。

📚 用語解説

予約ブロック(reserved blocks):ext4などのファイルシステムが、システム管理者(root)のために確保しておく領域。デフォルトでは総容量の5%が予約されます。一般ユーザーはこの領域に書き込めませんが、rootユーザーは使えます。サーバーが「ディスクフル」になってもrootが緊急ログインしてクリーンアップできるよう設計された安全機構です。

計算式を整理すると次のようになります。

Size(総容量) = Used(使用量) + Available(一般ユーザーの空き) + Reserved(root予約)

例:
49G = 7.9G + 39G + 2.1G(約5%)

Use%は(Used ÷ (Used + Available))× 100 で計算されます。Reservedは分母に含まれないため、Use%が100%になる前にディスクフルになることはありません(rootは予約領域まで使えるため)。

9-1. 予約ブロックを確認・変更する

tune2fsコマンドを使うと、ext4FSの予約ブロック割合を確認・変更できます。本番サーバーでは変更前にバックアップを取ることを強く推奨します。

# 予約ブロック割合の確認
$ tune2fs -l /dev/sda1 | grep "Reserved block count"
Reserved block count:      2457600

# 割合で確認(total blocksとの比)
$ tune2fs -l /dev/sda1 | grep -E "Block count|Reserved block"
💡 大容量ディスクでは予約5%が過剰になる

1TBのディスクなら5% = 50GB、10TBなら500GBが予約されます。そのサーバーでrootログインが必要な緊急作業が現実的にどのくらいの容量を使うかを考えると、多くの場合1〜2%で十分です。大容量ストレージでは予約割合の見直しを検討してください。

Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

10 サーバー監視でのdf活用(ディスク80%超過アラート) シェルスクリプトで自動監視を構築する実装例

ディスク使用率の増加は緩やかなことが多く、気づいたときには手遅れというケースが珍しくありません。dfを定期的に実行して、Use%が閾値を超えたら通知する仕組みを作っておくことが重要です。

10-1. 基本の監視スクリプト(Use%が80%を超えたらアラート)

#!/bin/bash
# disk-monitor.sh
# 使用率が THRESHOLD% を超えたら echo でアラート

THRESHOLD=80

df -h -x tmpfs -x overlay | awk 'NR>1 {
    # Use% から % を除いた数値を取得
    gsub(/%/, "", $5)
    if ($5 > 0 && $5 >= THRESHOLD) {
        printf "ALERT: %s mounted on %s is %s%% (threshold: %d%%)
", $1, $NF, $5, THRESHOLD
    }
}' THRESHOLD="$THRESHOLD"

このスクリプトをcronで定期実行し、出力をSlackやメールに転送することで自動監視が完成します。

10-2. inodeも同時監視するスクリプト

容量とinodeを両方監視するスクリプトの例です。

#!/bin/bash
# disk-full-monitor.sh
# 使用率(容量)とinode使用率を両方チェック

THRESHOLD=80
INODE_THRESHOLD=75

echo "=== Disk Usage Check ==="
df -h -x tmpfs | awk -v thr="$THRESHOLD" 'NR>1 {
    gsub(/%/, "", $5)
    if ($5 >= thr) print "DISK ALERT: "$1" "$5"% ("$NF")"
}'

echo "=== Inode Usage Check ==="
df -i -x tmpfs | awk -v thr="$INODE_THRESHOLD" 'NR>1 {
    gsub(/%/, "", $5)
    if ($5 >= thr) print "INODE ALERT: "$1" "$5"% ("$NF")"
}'

10-3. cronへの登録例

# crontab -e で以下を追加
# 毎時0分に実行、出力があればメールで通知
0 * * * * /home/user/scripts/disk-full-monitor.sh | grep -E "ALERT" && mail -s "Disk Alert" admin@example.com < /home/user/scripts/disk-full-monitor.sh

# または毎日朝9時にチェック結果をレポート
0 9 * * * /home/user/scripts/disk-full-monitor.sh >> /var/log/disk-check.log 2>&1

📚 用語解説

cron:Linuxで定期的にコマンドやスクリプトを自動実行するためのジョブスケジューラー。「crontab -e」でジョブの登録・編集ができます。「0 * * * *」は「毎時0分に実行」を意味します。監視スクリプトをcronに登録しておくことで、手動でdfを打たなくても自動でディスク状態を確認できます。

10-4. ディスク監視の閾値設定ガイド

Use%状態推奨アクション
〜70%正常定期確認のみ。増加トレンドを記録しておく。
70〜80%警告不要ファイルの棚卸し開始。増加速度を確認。
80〜90%要対処即座にクリーンアップ開始。容量拡張の検討。
90〜95%緊急一部サービスに影響が出始める。即時対応必須。
95%以上危機サービス障害のリスク大。緊急クリーンアップまたは拡張。
代表菅澤 代表菅澤
弊社では80%をSlackアラート、90%をページャーアラート(即座に誰かが対応)というルールにしています。80%→90%に達するまでの時間は環境によってまちまちですが、ログサーバーだと週1で80%になることもある。早めに知るのが大事です。

11 GENAI実運用サーバーのディスク管理 株式会社GENAIの実際のサーバー監視体制を公開

ここでは、弊社(株式会社GENAI)が実際に行っているサーバーのディスク管理体制を紹介します。Xserverの共有サーバーとCloud Runコンテナを組み合わせた構成ですが、dfコマンドは変わらず監視の基本です。

11-1. 監視対象のサーバー・環境

環境df確認方法監視ポイント
XserverレンタルサーバーSSH経由でdf -h/home以下のサイトデータ、logのサイズ
Cloud Run コンテナCloud Shellからgcloud run execでコンテナ内に入ってdftmpfsの使用量、コンテナイメージサイズ
GitHub Actionsワークフロー内でdf -hを実行しログ確認ランナーの残り容量(大きいビルドで枯渇することがある)

11-2. GENAIで最も容量を使うディレクトリ

弊社のXserverで最も容量を消費しているのは以下のディレクトリです。

✔️/home/user/public_html/ai-kanri/wp-content/uploads/:WordPressのアップロード画像。月300〜500枚の記事サムネイルが蓄積。
✔️/home/user/public_html/ai-kanri/wp-content/cache/:WPキャッシュプラグインのキャッシュファイル。定期的なクリアが必要。
✔️/home/user/logs/:Xserverが自動生成するアクセスログ・エラーログ。週1GBペースで増える月も。
✔️/home/user/public_html/ai-kanri/wp-content/wc-logs/:旧WooCommerce残骸。不要ログが大量に残留していた(発見・削除済み)。

11-3. 月次ディスク棚卸しの実施内容

弊社では月1回、以下のフローでディスクの棚卸しを行っています。

df -h で全体確認
各ディレクトリのサイズを確認
90日以上古いキャッシュを削除
WPメディアの孤立ファイルを確認
翌月の見込み容量を計算
AI鬼管理山崎 AI鬼管理山崎
ブログ記事を毎日10〜20本公開していると、サムネイル画像だけで月に1〜2GB増える計算になります。記事を量産するならディスク管理は切り離せません。弊社では画像のWebP変換・リサイズを自動化して、1枚あたりの容量を50KB以下に抑えています。
💡 ディスク使用量の増加を予測する

月ごとのdf -h の記録を残しておくと、「このペースだとあと3ヶ月で80%に達する」という予測が立てられます。単純な増加量÷月数で計算できます。閾値アラートに加えて、こうしたトレンド分析も行うとより安定した運用が可能になります。

12 Claude Codeでディスク監視を自動化する 手動のdf確認をゼロにして、問題を自動検知・対処する

ここまでdfコマンドの使い方を網羅的に解説してきました。しかし本音を言うと、熟練したLinux管理者ほどdfを手動で打つ機会が少ないのも事実です。なぜなら、監視・アラート・初期対処までを自動化しているからです。

そしてその自動化の精度をさらに高める手段として、弊社が実際に活用しているのがClaude Codeです。Claude Codeは、ターミナル上でAIエージェントとして動作し、コマンドの実行・ファイルの解析・スクリプトの作成・エラーの診断まで自律的に行います。

代表菅澤 代表菅澤
「ディスク監視スクリプトを作って」と Claude Code に依頼したら、dfとduを組み合わせた監視スクリプト、cronへの登録方法、Slack通知の実装まで一気にやってくれました。自分でシェルスクリプトを書くより10倍早かった。

12-1. Claude Codeができるディスク管理タスク

✔️監視スクリプトの自動生成:「Use%が80%を超えたらSlack通知するスクリプトを書いて」で実装まで完結
✔️ログ肥大化の診断:「/var/logが50GB超えているが何が原因か調べて」で犯人ファイルを特定
✔️cronジョブの設定:「毎朝8時にdf -hの結果をログに残す設定を追加して」で即実装
✔️アラートの解析:「このdfの出力を見て問題があればアドバイスして」で人間語での説明が返ってくる
✔️容量増加トレンドの分析:複数日のdfログを渡せば、増加ペースを計算して予測してくれる

12-2. Claude Codeへの依頼の仕方(実例)

Claude Codeを使ったディスク管理の具体的なやりとり例を紹介します。

# Claude Codeへの依頼例
「以下のdfコマンドの出力を解析して、問題のあるパーティションと推奨アクションを教えて」

$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4       49G  43G    4G  92% /
tmpfs          tmpfs     4.0G  2.1G  1.9G  53% /dev/shm
/dev/sda2      xfs       100G  78G   22G  78% /var/log

このような入力に対して、Claude Codeは「/dev/sda1のルートFSが92%で危険水域、即座に/var/cacheや古いログのクリーンアップが必要」といった具体的なアドバイスと、クリーンアップのコマンド例を返してくれます。

12-3. Claude Codeでディスク監視を完全自動化する構成

弊社GENAIの実際の自動化構成を紹介します。

cronでdf出力を定期収集
ログファイルに蓄積
Claude Code CLIで自動解析
異常検知でSlackアラート
# 日次ディスクレポートをClaude Codeで解析するイメージ
# (実際の実装はClaude Codeに依頼して生成)

#!/bin/bash
# disk-report-with-ai.sh

# dfの出力を収集
DF_OUTPUT=$(df -hT -x tmpfs -x overlay)

# Claude Code CLIに渡して解析(実際のコマンド形式はClaude Codeの仕様に従う)
echo "$DF_OUTPUT" | claude --print "このdfの出力を解析し、80%超のパーティションと推奨対処を日本語で説明して"
💡 Claude Codeは「AIに詳しくない人」ほど効果が高い

シェルスクリプトやcronの設定に慣れていない人でも、「このエラーはどういう意味?」「こういう監視を作りたい」と話しかけるだけでClaude Codeが実装まで担当します。インフラ管理の専門知識がなくても、サーバーのディスク状態を把握・管理できるようになるのが最大のメリットです。

AI鬼管理山崎 AI鬼管理山崎
弊社の場合、Claude Codeを導入してからサーバー管理のために書くシェルスクリプトの時間が激減しました。「作って」と言えば作ってくれるし、「なぜこうなっているか説明して」と聞けば教えてくれる。dfの使い方を全部暗記しなくても、Claude Codeと一緒に使えば問題ないレベルになれます。

12-4. ディスク管理自動化の始め方

1
Claude Codeを導入するAnthropicの公式サイトからClaude Code(CLI版)をインストール。Proプラン以上のアカウントが必要。
2
dfの現状確認を依頼する「今のサーバーのdf -hTの出力を解析して問題点を教えて」と話しかけるだけで診断開始。
3
監視スクリプトの作成を依頼する「80%超過でSlack通知するシェルスクリプトを作って、cronにも登録して」と依頼。
4
月次レポートを自動化する「月1でdfのサマリーをSlackに送るジョブを設定して」で定期報告まで自動化完了。
🏆
VERDICT
Claude に軍配
Claude Codeはシェルスクリプトの作成・cronの設定・ログ解析まで一気に担当。ディスク管理の手間を大幅に削減できる。

dfコマンドは覚えるべき基礎ですが、監視・アラート・対処の自動化まで含めてはじめて「運用」と言えます。Claude Codeを活用することで、その自動化のハードルを大幅に下げることができます。AI鬼管理の導入に興味がある方は、ぜひ無料相談からお気軽にお声がけください。

Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

よくある質問(FAQ)

Q. dfコマンドはどのLinuxディストリビューションでも使えますか?

A. はい。Ubuntu、CentOS、Debian、Amazon Linux、Alpine Linux、RHEL など主要なすべてのLinuxディストリビューションで使えます。macOSでも使えますが、GNU dfとBSD dfでオプションの動作が一部異なります(-Tはmacosで動作が違うなど)。本番サーバーはほぼ全てLinuxのため、この記事の内容はそのまま適用できます。

Q. df -h の出力で「/dev/sdaX」ではなく「overlay」や「tmpfs」がたくさん表示されます。どうすれば?

A. Dockerを使っている環境でよく見られます。「df -h -x tmpfs -x overlay」と打つと、それらを除外して実際のディスクのみが表示されます。また、Dockerのオーバーレイファイルシステムはイメージ・コンテナ・ボリュームが積み重なってサイズが大きくなりやすいため、定期的に「docker system prune」で不要なイメージ・コンテナを削除することも重要です。

Q. 「No space left on device」エラーが出るのにdf -hでは空きがあります。なぜですか?

A. inodeの枯渇が原因の可能性が高いです。「df -i」を実行してIUse%を確認してください。IUse%が100%に近い場合、ファイルの実体を書き込むディスク容量はあっても、ファイルを管理するinodeが足りずに新規ファイルを作れなくなっています。小さいファイルが大量に蓄積されやすい /var/lib/php/sessions や /tmp などを確認し、不要なファイルを削除することで改善できます。

Q. dfとduを両方実行しても使用量が一致しません。どちらが正しいですか?

A. どちらも正しい値を出していますが、集計の対象が違います。dfはファイルシステムが「使用中」として記録しているブロック数を返すため、「削除されたがプロセスが保持しているファイル」も含まれます。duは実際に存在するファイルを積み上げて計算します。差分が大きい場合、「lsof | grep deleted」で削除済みだがプロセスが開いているファイルを探してみてください。

Q. dfコマンドで特定のパーティションだけを監視したいです。どうすればよいですか?

A. 「df -h /var/log」のようにパスを引数に渡すと、そのパスが含まれるファイルシステムのみ表示されます。監視スクリプトでは「df -h /var/log | awk 'NR==2 {print $5}' | tr -d '%'」のように書くと使用率のパーセント数値だけを取り出せます。複数のパスをスペース区切りで指定すれば、まとめて確認することも可能です。

Q. Claude Codeでディスク監視を自動化したいです。どのように依頼すれば良いですか?

A. Claude Code(CLIツール)を起動して、「Linuxサーバーのディスク使用率を監視して、Use%が80%を超えたらSlackに通知するシェルスクリプトを作成してcronに登録してください。対象のパーティションは / と /var/log です。Slack Webhook URLは XXX です。」と依頼するだけで、スクリプトの作成からcronへの登録まで自律的に実行してくれます。プログラミングの知識がない方でも、自然な日本語で指示できるのがClaude Codeの強みです。

Q. dfの予約ブロック(reserved blocks)を0%にしても問題ないですか?

A. 本番サーバーでは推奨しません。予約ブロックは、ディスクフルになったときにrootユーザーが緊急ログインして復旧作業を行うための安全弁です。0%にするとディスクが完全に埋まった場合に復旧手段がなくなります。ただし、大容量ストレージ(1TB以上)ではデフォルト5%が過剰なこともあるため、1〜2%に下げるのは合理的な選択肢です。変更はtune2fsで行いますが、念のためバックアップを取ってから実施してください。

まとめ

この記事では、Linuxのdfコマンドについて、基本から実務レベルの監視・自動化まで徹底解説しました。

✔️df -h は必須オプション。人間が読める単位で表示されるので常に付ける
✔️df -hT でファイルシステムタイプも確認。ext4/xfs/tmpfsの違いを理解する
✔️df -i でinode使用率を確認。容量がある「No space」エラーの犯人はinode枯渇
✔️Used + Available ≠ Totalの理由はroot予約ブロック(デフォルト5%)
✔️dfとduの使い分け:全体把握はdf、犯人ディレクトリ特定はdu
✔️80%超過アラートをcronで自動化して、障害を未然に防ぐ
✔️Claude Codeを使えば、監視スクリプトの作成・運用まで自動化できる

dfコマンドは「打つだけ」なら簡単ですが、出力を正しく読み、inodeや予約ブロックの概念まで理解することで、サーバー管理の深さが格段に変わります。ぜひこの記事を手元に置いて、実際のサーバーでdf -hT や df -i を試してみてください。

代表菅澤 代表菅澤
サーバー管理の知識があっても、監視・アラート・自動対処まで組み込んでいる人は意外と少ないです。Claude Codeを使えば非エンジニアでもそのレベルの運用が実現できます。AI導入に興味がある方は気軽にご相談ください。
AIAI鬼管理

AI鬼管理へのお問い合わせ

この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。

会社名を入力してください
業種を選択してください
お名前を入力してください
正しいメールアドレスを入力してください

1つ以上選択してください
1つ以上選択してください
月額コストを選択してください

約1時間のオンライン面談(Google Meet)です

空き枠を取得中...
面談日時を選択してください

予約確定後、Google Calendarの招待メールをお届けします。
しつこい営業は一切ございません。

監修 最終更新日: 2026年7月18日
菅澤孝平
菅澤 孝平 株式会社GENAI 代表取締役
  • AI業務自動化サービス「AI鬼管理」を運営 — Claude Code を活用し、経営者の業務を「AIエージェントに任せる仕組み」へ転換するパーソナルトレーニングを 伴走構築 で提供。日報・採用・問い合わせ対応・経費精算・議事録・データ集計・営業リスト等の定型業務を、AIに代行させる体制を経営者と一緒に作り込む
  • Claude Code 実装ノウハウを 経営者・法人クライアント に直接指導。生成AIを「便利ツール」ではなく 「業務を任せる存在」 として運用する手法を体系化
  • 「やらせ切る管理」メソッドの開発者。シンゲキ株式会社(2021年設立・鬼管理専門塾運営)にて累計3,000名以上の学習者を志望校合格に導いた管理メソッドを、AI × 経営者支援 に転用
  • 著書『3カ月で志望大学に合格できる鬼管理』(幻冬舎)、『親の過干渉こそ、最強の大学受験対策である。』(講談社)
  • メディア出演: REAL VALUE / カンニング竹山のイチバン研究所 / ええじゃないかBiz 他
  • 明治大学政治経済学部卒
現在は AI鬼管理(Claude Code活用の伴走型パーソナルトレーニング)を主事業とし、経営者と二人三脚で「AIに業務を任せる仕組み」を実装。「実行を強制する環境」を AI で構築する手法を、自社の実運用知見をもとに発信している。