[Linux] dfコマンドの使い方 – ディスク容量の表示(使用中/空き容量)
dfコマンドは、Linuxでファイルシステムのディスク使用状況を確認するために使用されます。
デフォルトでは、各ファイルシステムの使用中容量、空き容量、全体容量を表示します。
df
を単独で実行すると、バイト単位で表示されますが、-h
オプションを付けると、容量が人間に読みやすい形式(KB、MB、GBなど)で表示されます。
df -T
でファイルシステムの種類も確認可能です。
- dfコマンドの基本的な使い方
- 各種オプションの活用法
- ディスク使用状況の確認方法
- dfコマンドと他のコマンドの違い
- 注意点やトラブルシューティングの知識
dfコマンドとは
df
コマンドは、LinuxやUnix系のオペレーティングシステムで使用されるコマンドの一つで、ディスクの使用状況を表示するために利用されます。
このコマンドを使うことで、システム内のファイルシステムの容量、使用中の容量、空き容量、マウントポイントなどの情報を簡単に確認することができます。
特に、サーバーやデスクトップ環境でのディスク管理において、ディスクの空き容量を把握することは非常に重要です。
df
コマンドは、システムのパフォーマンスを維持し、不要なディスク使用を防ぐための基本的なツールとして広く利用されています。
コマンドの出力は、オプションによってカスタマイズ可能で、さまざまな形式で情報を表示することができます。
dfコマンドの基本オプション
-hオプション:人間に読みやすい形式で表示
-h
オプションを使用すると、ディスク容量の表示が人間にとって読みやすい形式(KB、MB、GBなど)で行われます。
これにより、数値が大きくなっても直感的に理解しやすくなります。
df -h
Filesystem Size Used Avail Use% Mounted on
none 16G 0 16G 0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none 16G 4.0K 16G 1% /mnt/wsl
drivers 1.9T 1.1T 737G 61% /usr/lib/wsl/drivers
/dev/sdc 1007G 1.4G 955G 1% /
none 16G 92K 16G 1% /mnt/wslg
none 16G 0 16G 0% /usr/lib/wsl/lib
rootfs 16G 2.2M 16G 1% /init
none 16G 568K 16G 1% /run
none 16G 0 16G 0% /run/lock
none 16G 0 16G 0% /run/shm
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
none 16G 76K 16G 1% /mnt/wslg/versions.txt
none 16G 76K 16G 1% /mnt/wslg/doc
C:\ 1.9T 1.1T 737G 61% /mnt/c
tmpfs 3.2G 16K 3.2G 1% /run/user/1000
-Tオプション:ファイルシステムの種類を表示
-T
オプションを使うと、各ファイルシステムの種類(ext4、xfsなど)を表示することができます。
これにより、どのファイルシステムが使用されているかを確認できます。
df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
none overlay 16389028 0 16389028 0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none tmpfs 16389028 4 16389024 1% /mnt/wsl
drivers 9p 1952732156 1180439320 772292836 61% /usr/lib/wsl/drivers
/dev/sdc ext4 1055762868 1446108 1000613288 1% /
none tmpfs 16389028 92 16388936 1% /mnt/wslg
none overlay 16389028 0 16389028 0% /usr/lib/wsl/lib
rootfs rootfs 16385612 2208 16383404 1% /init
none tmpfs 16389028 568 16388460 1% /run
none tmpfs 16389028 0 16389028 0% /run/lock
none tmpfs 16389028 0 16389028 0% /run/shm
tmpfs tmpfs 4096 0 4096 0% /sys/fs/cgroup
none overlay 16389028 76 16388952 1% /mnt/wslg/versions.txt
none overlay 16389028 76 16388952 1% /mnt/wslg/doc
C:\ 9p 1952732156 1180439320 772292836 61% /mnt/c
tmpfs tmpfs 3277804 16 3277788 1% /run/user/1000
-iオプション:inodeの使用状況を表示
-i
オプションを使用すると、各ファイルシステムのinodeの使用状況を表示します。
inodeはファイルやディレクトリのメタデータを管理するためのデータ構造で、inodeが不足すると新しいファイルを作成できなくなります。
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
none 4097257 4 4097253 1% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none 4097257 2 4097255 1% /mnt/wsl
drivers 999 -999001 1000000 - /usr/lib/wsl/drivers
/dev/sdc 67108864 49364 67059500 1% /
none 4097257 40 4097217 1% /mnt/wslg
none 4097257 5 4097252 1% /usr/lib/wsl/lib
rootfs 4096403 12 4096391 1% /init
none 4097257 529 4096728 1% /run
none 4097257 2 4097255 1% /run/lock
none 4097257 1 4097256 1% /run/shm
tmpfs 1024 19 1005 2% /sys/fs/cgroup
none 4097257 50 4097207 1% /mnt/wslg/versions.txt
none 4097257 50 4097207 1% /mnt/wslg/doc
C:\ 999 -999001 1000000 - /mnt/c
tmpfs 819451 34 819417 1% /run/user/1000
-aオプション:全てのファイルシステムを表示
-a
オプションを使うと、通常は表示されない特殊なファイルシステムも含めて、全てのファイルシステムの情報を表示します。
これにより、隠れたファイルシステムの状況も把握できます。
df -a
Filesystem 1K-blocks Used Available Use% Mounted on
none 16389028 0 16389028 0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none 16389028 4 16389024 1% /mnt/wsl
drivers 1952732156 1180439612 772292544 61% /usr/lib/wsl/drivers
/dev/sdc 1055762868 1446108 1000613288 1% /
none 16389028 92 16388936 1% /mnt/wslg
/dev/sdc 1055762868 1446108 1000613288 1% /mnt/wslg/distro
none 16389028 0 16389028 0% /usr/lib/wsl/lib
rootfs 16385612 2208 16383404 1% /init
none 16385612 0 16385612 0% /dev
sysfs 0 0 0 - /sys
proc 0 0 0 - /proc
devpts 0 0 0 - /dev/pts
none 16389028 568 16388460 1% /run
none 16389028 0 16389028 0% /run/lock
none 16389028 0 16389028 0% /run/shm
...省略
-lオプション:ローカルファイルシステムのみ表示
-l
オプションを使用すると、ローカルファイルシステムのみを表示し、ネットワークファイルシステム(NFSなど)は除外されます。
これにより、ローカルのディスク状況を簡単に確認できます。
df -l
Filesystem 1K-blocks Used Available Use% Mounted on
none 16389028 0 16389028 0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none 16389028 4 16389024 1% /mnt/wsl
drivers 1952732156 1180440004 772292152 61% /usr/lib/wsl/drivers
/dev/sdc 1055762868 1446108 1000613288 1% /
none 16389028 92 16388936 1% /mnt/wslg
none 16389028 0 16389028 0% /usr/lib/wsl/lib
rootfs 16385612 2208 16383404 1% /init
none 16389028 568 16388460 1% /run
none 16389028 0 16389028 0% /run/lock
none 16389028 0 16389028 0% /run/shm
tmpfs 4096 0 4096 0% /sys/fs/cgroup
none 16389028 76 16388952 1% /mnt/wslg/versions.txt
none 16389028 76 16388952 1% /mnt/wslg/doc
tmpfs 3277804 16 3277788 1% /run/user/1000
-xオプション:特定のファイルシステムを除外して表示
-x
オプションを使うと、指定したファイルシステムを除外して表示することができます。
これにより、特定のファイルシステムの情報を無視して、他のファイルシステムの状況を確認できます。
df -x tmpfs
Filesystem 1K-blocks Used Available Use% Mounted on
none 16389028 0 16389028 0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
drivers 1952732156 1180440928 772291228 61% /usr/lib/wsl/drivers
/dev/sdc 1055762868 1446108 1000613288 1% /
none 16389028 0 16389028 0% /usr/lib/wsl/lib
rootfs 16385612 2208 16383404 1% /init
none 16389028 76 16388952 1% /mnt/wslg/versions.txt
none 16389028 76 16388952 1% /mnt/wslg/doc
C:\ 1952732156 1180440928 772291228 61% /mnt/c
-Pオプション:POSIX準拠のフォーマットで表示
-P
オプションを使用すると、POSIX準拠のフォーマットで出力されます。
これにより、スクリプトなどでの処理が容易になります。
df -P
Filesystem 1024-blocks Used Available Capacity Mounted on
none 16389028 0 16389028 0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none 16389028 4 16389024 1% /mnt/wsl
drivers 1952732156 1180440672 772291484 61% /usr/lib/wsl/drivers
/dev/sdc 1055762868 1446108 1000613288 1% /
none 16389028 92 16388936 1% /mnt/wslg
none 16389028 0 16389028 0% /usr/lib/wsl/lib
rootfs 16385612 2208 16383404 1% /init
none 16389028 568 16388460 1% /run
none 16389028 0 16389028 0% /run/lock
none 16389028 0 16389028 0% /run/shm
tmpfs 4096 0 4096 0% /sys/fs/cgroup
none 16389028 76 16388952 1% /mnt/wslg/versions.txt
none 16389028 76 16388952 1% /mnt/wslg/doc
C:\ 1952732156 1180440672 772291484 61% /mnt/c
tmpfs 3277804 16 3277788 1% /run/user/1000
dfコマンドの応用例
特定のディレクトリのディスク使用状況を確認する
特定のディレクトリのディスク使用状況を確認するには、df
コマンドにそのディレクトリのパスを指定します。
これにより、指定したディレクトリがマウントされているファイルシステムの情報が表示されます。
df /home
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdc 1055762868 1446108 1000613288 1% /
特定のファイルシステムのディスク使用状況を確認する
特定のファイルシステムのディスク使用状況を確認するには、df
コマンドにファイルシステムのデバイス名を指定します。
これにより、そのファイルシステムの詳細な情報が得られます。
df /dev/sda1
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 102400000 30720000 71680000 30% /
ディスク使用状況を定期的に監視する方法
ディスク使用状況を定期的に監視するには、watch
コマンドと組み合わせて使用します。
これにより、指定した間隔でdf
コマンドの出力を更新して表示できます。
watch -n 60 df -h
このコマンドは、60秒ごとにディスク使用状況を更新して表示します。
dfコマンドの出力を他のコマンドと組み合わせる
df
コマンドの出力を他のコマンドと組み合わせることで、より便利な情報を得ることができます。
例えば、grep
コマンドを使って特定のファイルシステムだけを表示することができます。
df -h | grep '/dev/sda1'
/dev/sda1 100G 30G 70G 30% /
スクリプトでdfコマンドを活用する
df
コマンドをスクリプト内で活用することで、ディスク使用状況を自動的にチェックし、アラートを出すことができます。
以下は、ディスク使用率が80%を超えた場合に警告を表示する簡単なスクリプトの例です。
#!/bin/bash
# ディスク使用率をチェック
threshold=80
usage=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ "$usage" -gt "$threshold" ]; then
echo "警告: ディスク使用率が${usage}%を超えました!"
fi
このスクリプトを定期的に実行することで、ディスクの使用状況を監視できます。
dfコマンドの注意点
マウントされていないファイルシステムは表示されない
df
コマンドは、マウントされているファイルシステムの情報のみを表示します。
したがって、マウントされていないファイルシステムやデバイスは出力に含まれません。
これにより、システムに接続されているが使用されていないストレージデバイスの状況を把握することはできません。
新しいストレージデバイスを追加した場合は、必ずマウントを行ってからdf
コマンドを実行する必要があります。
バインドマウントの扱い
バインドマウントは、既存のディレクトリを別の場所にマウントする方法です。
df
コマンドは、バインドマウントされたディレクトリも表示しますが、元のディレクトリと同じファイルシステムとして扱われます。
これにより、バインドマウントの影響を受けたディレクトリの使用状況を正確に把握することが難しくなる場合があります。
バインドマウントを使用する際は、どのディレクトリがどのファイルシステムに属しているかを明確に理解しておくことが重要です。
ディスク使用量とdfの表示が一致しない場合の原因
df
コマンドで表示されるディスク使用量と、実際のディスク使用量が一致しない場合があります。
これは、以下のような理由によるものです。
- キャッシュの影響:Linuxカーネルは、ディスクの読み書きを効率化するためにキャッシュを使用します。
このため、df
コマンドが表示する使用量は、実際のディスクの使用量とは異なる場合があります。
- 削除中のファイル:ファイルが削除されている最中に、そのファイルがまだプロセスによって使用されている場合、
df
コマンドはそのファイルの使用量を表示し続けます。 - ファイルシステムの不整合:ファイルシステムが不整合な状態にある場合、
df
コマンドの出力が正確でないことがあります。
この場合、fsck
コマンドを使用してファイルシステムのチェックと修復を行う必要があります。
これらの要因を考慮し、df
コマンドの出力を解釈する際には注意が必要です。
dfコマンドと他のコマンドの比較
duコマンドとの違い
du
(Disk Usage)コマンドは、指定したディレクトリやファイルのディスク使用量を表示するためのコマンドです。
df
コマンドがファイルシステム全体の使用状況を表示するのに対し、du
コマンドは特定のディレクトリやファイルのサイズを詳細に確認することができます。
以下は、両者の主な違いです。
コマンド | 機能 | 出力内容 |
---|---|---|
df | ファイルシステムの全体的な使用状況を表示 | 各ファイルシステムのサイズ、使用中、空き容量 |
du | 特定のディレクトリやファイルのサイズを表示 | 指定したディレクトリ内のファイルやサブディレクトリのサイズ |
du -sh /home/user
30G /home/user
lsblkコマンドとの違い
lsblk
(List Block Devices)コマンドは、システム内のブロックデバイス(ディスクやパーティション)の情報を表示します。
df
コマンドがファイルシステムの使用状況を表示するのに対し、lsblk
コマンドはデバイスの構造やマウントポイントを確認するために使用されます。
以下は、両者の主な違いです。
コマンド | 機能 | 出力内容 |
---|---|---|
df | ファイルシステムの使用状況を表示 | 各ファイルシステムのサイズ、使用中、空き容量 |
lsblk | ブロックデバイスの情報を表示 | デバイス名、サイズ、マウントポイント、タイプ |
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
└─sda1 8:1 0 100G 0 part /
fdiskコマンドとの違い
fdisk
コマンドは、ディスクパーティションの管理を行うためのコマンドです。
df
コマンドがファイルシステムの使用状況を表示するのに対し、fdisk
コマンドはディスクのパーティションテーブルを表示したり、パーティションの作成や削除を行ったりします。
以下は、両者の主な違いです。
コマンド | 機能 | 出力内容 |
---|---|---|
df | ファイルシステムの使用状況を表示 | 各ファイルシステムのサイズ、使用中、空き容量 |
fdisk | ディスクパーティションの管理 | パーティションテーブル、パーティションのサイズ、タイプ |
fdisk -l
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
これらのコマンドはそれぞれ異なる目的を持っており、システム管理やディスク管理において適切に使い分けることが重要です。
よくある質問
まとめ
この記事では、df
コマンドの基本的な使い方やオプション、応用例、注意点、他のコマンドとの比較について詳しく解説しました。
これにより、ディスクの使用状況を把握し、効率的なシステム管理を行うための手段を提供しています。
今後は、実際にdf
コマンドを活用して、システムのディスク容量を定期的に確認し、必要に応じて適切な対策を講じることをお勧めします。