Infra Engineer

ファイルシステムの監視~dfコマンド・duコマンド~
2022.02.28
Lv1

ファイルシステムの監視~dfコマンド・duコマンド~

本記事の対象者

LPIC level1習得を目指す初学者の方
コマンドの基本的な用途について、要点を絞って解説します。


今回の内容

今回は、dfコマンドとduコマンドについて解説します。
ファイルシステムの監視・管理に使用するコマンドで、ディスクの利用状況を確認できます。

・ファイルシステムの管理
・dfコマンド
・duコマンド
・まとめ
・確認問題

ファイルシステムの管理

システムの運用にあたり、ファイルシステムは作成して終わりではありません。
もちろん、管理する必要があります。
ファイルシステムに書き込めないなどの障害が発生した場合、その原因を特定し、復旧にあたらなければなりません。
ファイルシステムに障害が起こった際に考えうる主な原因としては以下があります。

  • 空きディスク領域の不足
  • inodeの枯渇
  • 読み書き中の強制終了
  • 誤ったファイルの削除

これらの原因を追究するために使用するのが、今回解説する「dfコマンド」「duコマンド」です。
※df、duコマンドでは上2つの原因について調査できます。


dfコマンド

dfコマンドは、ファイルシステムの空きディスク容量を表示します。
「disk free」が由来です。

df
意味 ファイルシステムの空きディスク容量を表示する。
書式 df [オプション] [デバイス名 | ディレクトリ名]

引数なしでdfコマンドを使用すると、マウントされているすべてのファイルシステムの使用状況を表示します。
ディレクトリを指定すると、そのディレクトリが属しているファイルシステムのみを表示します。

dfコマンドの主なオプションは以下です。

オプション 説明
-h 容量を適切な単位で表示する。(Mは1,048,576バイト)
-H 容量を適切な単位で表示する。(Mは1,000,000バイト)
-k 容量をKB単位で表示する。
-i inodeの使用状況を表示する。
例①)
すべてのファイルシステムの使用状況を表示。(引数なし)
[root@localhost ~]# df -h
ファイルシステム            1K-ブロック    使用  使用可 使用% マウント位置
devtmpfs                     495436       0  495436    0% /dev
tmpfs                        507376       0  507376    0% /dev/shm
tmpfs                        507376    6916  500460    2% /run
tmpfs                        507376       0  507376    0% /sys/fs/cgroup
/dev/mapper/centos-root     6486016 1407104 5078912   22% /
/dev/sda1                   1038336  140188  898148   14% /boot
tmpfs                        101476       0  101476    0% /run/user/0
例②)
/dev/sda1の使用状況を表示。
[root@localhost ~]# df -h /dev/sda1
ファイルシステム  サイズ  使用  残り 使用% マウント位置
/dev/sda1       1014M  137M  878M   14% /boot

「-h」オプションをつけて、容量を適切な単位で表示しています。(Mは1,048,576バイト)

例③)
inodeの使用状況を表示。
[root@localhost ~]# df -i
ファイルシステム           Iノード I使用   I残り I使用% マウント位置
devtmpfs                 123859   359  123500     1% /dev
tmpfs                    126844     1  126843     1% /dev/shm
tmpfs                    126844   480  126364     1% /run
tmpfs                    126844    16  126828     1% /sys/fs/cgroup
/dev/mapper/centos-root 3248128 27565 3220563     1% /
/dev/sda1                524288   326  523962     1% /boot
tmpfs                    126844     1  126843     1% /run/user/0

すべてのファイルには対応するinodeがあります。
作成できるinodeの数は、ファイルシステム作成時に決定され、後から追加したり変更したりすることはできません。
inodeが枯渇してしまうと、たとえディスクに空き容量があっても、ファイルを新規保存することができなくなります。
参考:ファイルシステムとは


duコマンド

duコマンドは、ファイルやディスクの使用量を表示します。
「disk used」が由来です。

du
意味 ファイルやディスクの使用量を表示する。
書式 du [オプション] [デバイス名 | ディレクトリ名]

duコマンドの主なオプションは以下です。

オプション 説明
-a ディレクトリ以外のファイルについても表示する。
-l リンクも含めて集計する。
-c すべての容量の合計を表示する。
-k 容量をKB単位で表示する。
-m 容量をMB単位で表示する。
-s 指定したファイルやディレクトリのみを集計する。
-S サブディレクトリを含めずに集計する。
-h 容量を適切な単位で表示する。
例①)
カレントディレクト内の容量を表示する。
[root@localhost ~]# du
4       ./sample1
32      .

左側の数字が容量で、KB単位で表示されています。

例②)
「sample1」ディレクトリの容量を表示する。(-s)
[root@localhost ~]# du -s sample1
4       sample1
例③)
「sample1」ディレクトリの容量を集計しない。(-S)
[root@localhost ~]# du -S
4       ./sample1
28      .

例①の際は「.」の容量が32KBだったのに対し、この例では28KBになっています。
これは、「sample1」ディレクトリの4KBが集計されていないからです。

例④)
ファイルの容量も表示する。(-a)
[root@localhost ~]# du -a
4       ./.bash_logout
4       ./.bash_profile
4       ./.bashrc
4       ./.cshrc
4       ./.tcshrc
4       ./anaconda-ks.cfg
4       ./.bash_history
4       ./sample1/sample.txt
4       ./sample1
32      .

まとめ

今回は、ファイルシステムの監視に関するコマンドについて解説しました。
ファイルシステムの障害に際し、これらのコマンドを使用して、障害の原因を探り、復旧の方法を策定します。

最後に、確認問題で今回の内容を確かめてください。

確認問題

問題

マウントされているすべてのファイルシステムの現在のディスク使用量を表示するコマンドはどれですか。

A) du
B) df
C) mkfs
D) fsck

解答
答え:B

A) ⇒ ファイルやディレクトリが占めている容量を表示するコマンドです。
B) ⇒ 正解です。
C) ⇒ ファイルシステムの構築に関するコマンドです。
D) ⇒ ファイルシステムの整合性をチェックするためのコマンドです。