Linux df コマンド:ディスク使用量のレポート

LinuxBeginner
オンラインで実践に進む

はじめに

この実験では、Linux システムのディスク容量を監視するための不可欠なツールである df コマンドについて学習します。あなたは、多忙なウェブサーバーを管理するシステム管理者の役割を担い、df を使ってディスク使用量を分析し、潜在的なストレージの問題を特定して、サーバーの円滑な運用を維持します。この実験は初心者向けに設計されているため、Linux が初めての方でも心配いりません。各ステップを丁寧に進めていきましょう。

基本的な df コマンドの理解

システム管理者としての最初の任務は、ウェブサーバーのディスク使用状況の概要を把握することです。オプションなしで df コマンドを実行すると、マウントされているすべてのファイルシステムの状況を素早く確認できます。

まず、プロジェクトディレクトリに移動しましょう。

cd ~/project

次に、基本的な df コマンドを実行します。

df

ヒント:仮想マシンのストレージは動的に変化するため、df コマンドの出力結果が例と一致しない場合がありますが、この点は無視して構いません。

以下のような出力が表示されるはずです。

Filesystem     1K-blocks     Used Available Use% Mounted on
overlay         20971520  1314600  19656920   7% /
tmpfs              65536        0     65536   0% /dev
tmpfs            4068320        0   4068320   0% /sys/fs/cgroup
shm                65536        0     65536   0% /dev/shm
/dev/vdb       104806400 17442788  87363612  17% /etc/hosts
tmpfs             102400    51200     51200  50% /mnt/ramdisk

出力内容を詳しく見ていきましょう。

  • Filesystem(ファイルシステム):デバイス名またはパーティション名を表示します。
  • 1K-blocks(1K ブロック):1 キロバイト単位のブロック数で表したファイルシステムの総容量です。
  • Used(使用済み):使用されている 1K ブロックの数です。
  • Available(空き容量):利用可能な 1K ブロックの数です。
  • Use%(使用率):ファイルシステムの使用済み容量の割合です。
  • Mounted on(マウント先):そのファイルシステムがディレクトリツリーのどこにマウントされているかを示します。

コンテナ環境でよく使われる overlay ファイルシステムに注目してください。/dev/vdb デバイスは仮想ディスクである可能性が高く、/mnt/ramdisk にマウントされている tmpfs はメモリ(RAM)ベースのファイルシステムであることがわかります。

df の出力を読みやすくする

df のデフォルト出力はサイズを 1K ブロック単位で表示するため、直感的に理解するのが難しい場合があります。たとえば、20640796 個の 1K ブロックが何ギガバイトになるかを計算するのは大変です。幸いなことに、-h オプション(human-readable:人間が読みやすい形式)を使用することで、出力を分かりやすくできます。

次のコマンドを実行してください。

df -h

以下のような出力が表示されるはずです。

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
tmpfs            64M     0   64M   0% /dev
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/vdb        100G   17G   84G  17% /etc/hosts
tmpfs           100M   50M   50M  50% /mnt/ramdisk

サイズが GB(ギガバイト)や MB(メガバイト)で表示されるようになったことに注目してください。これにより、一目で状況を把握しやすくなります。たとえば、メインのファイルシステム(overlay)のサイズは 20G で、使用量はわずか 1.3G、空き容量は 19G であることがすぐにわかります。

ファイルシステムの種類を表示する

システム管理者にとって、サーバー上のファイルシステムの種類(タイプ)を知ることは重要です。ファイルシステムの種類によって、機能やパフォーマンス特性が異なるからです。-T オプションを使用すると、この情報を表示できます。

次のコマンドを実行してください。

df -T

以下のような出力が表示されるはずです。

Filesystem     Type    1K-blocks     Used Available Use% Mounted on
overlay        overlay  20971520  1314600  19656920   7% /
tmpfs          tmpfs       65536        0     65536   0% /dev
tmpfs          tmpfs     4068320        0   4068320   0% /sys/fs/cgroup
shm            tmpfs       65536        0     65536   0% /dev/shm
/dev/vdb       xfs     104806400 17442728  87363672  17% /etc/hosts
tmpfs          tmpfs      102400    51200     51200  50% /mnt/ramdisk

この出力には、各マウント済みファイルシステムの種類を示す Type カラムが追加されています。表示されている種類を確認してみましょう。

  • overlay: ユニオンファイルシステムの一種で、コンテナ環境でよく使用されます。
  • tmpfs: メモリやスワップパーティション上に存在する一時的なファイルシステムです。
  • xfs: 高性能なジャーナリングファイルシステムで、ここでは /etc/hosts のマウントに使用されています。

ファイルシステムの種類を理解することは、トラブルシューティングやシステムのパフォーマンス最適化に役立ちます。

i ノードの使用状況を分析する

Linux において、i ノード(inode)は、ファイルの権限、所有者、ディスク上の場所などの重要な情報を保存するデータ構造です。システム上の各ファイルは 1 つの i ノードを消費します。興味深いことに、ディスク容量に十分な空きがあっても、i ノードを使い切ってしまうと新しいファイルを作成できなくなります。そのため、i ノードの使用状況を監視することは非常に重要です。

-i オプションを使用して i ノードの使用状況を確認してみましょう。

df -i

以下のような出力が表示されるはずです。

Filesystem       Inodes  IUsed    IFree IUse% Mounted on
overlay        52428800 539001 51889799    2% /
tmpfs           1017080    206  1016874    1% /dev
tmpfs           1017080     17  1017063    1% /sys/fs/cgroup
shm             1017080      1  1017079    1% /dev/shm
/dev/vdb       52428800 539001 51889799    2% /etc/hosts
tmpfs           1017080      2  1017078    1% /mnt/ramdisk

出力内容の解説:

  • Inodes: ファイルシステムの i ノード総数
  • IUsed: 現在使用中の i ノード数
  • IFree: 空いている i ノード数
  • IUse%: i ノードの使用率

この例では、メインのファイルシステム(overlay)の i ノード使用率はわずか 2% です。これは良好な状態で、i ノード不足によって新しいファイルが作成できなくなる心配は当面ないことを意味します。

オプションを組み合わせて包括的に分析する

個別のオプションについて学んだので、次はそれらを組み合わせてサーバーのストレージ状況をより包括的に把握してみましょう。複数のオプションを同時に使うことで、必要な情報を一度に取得できます。

次のコマンドを実行してください。

df -hT

このコマンドは、人間が読みやすい形式(-h)とファイルシステムの種類(-T)のオプションを組み合わせています。

以下のような出力が表示されるはずです。

Filesystem     Type     Size  Used Avail Use% Mounted on
overlay        overlay   20G  1.3G   19G   7% /
tmpfs          tmpfs     64M     0   64M   0% /dev
tmpfs          tmpfs    3.9G     0  3.9G   0% /sys/fs/cgroup
shm            tmpfs     64M     0   64M   0% /dev/shm
/dev/vdb       xfs      100G   17G   84G  17% /etc/hosts
tmpfs          tmpfs    100M   50M   50M  50% /mnt/ramdisk

この出力は、ファイルシステムの種類と読みやすいサイズ表示を網羅しており、システムのストレージ状況を素早く詳細に把握するのに最適な方法です。

特定のファイルシステムに焦点を当てる

システム管理者として、特定のファイルシステムの状態だけを確認したいことがよくあります。たとえば、ルートファイルシステムの空き容量を素早くチェックしたい場合などです。df コマンドの後にマウントポイントを指定することで、これを実現できます。

ルートファイルシステムに注目してみましょう。次のコマンドを実行します。

df -h /

以下のような出力が表示されるはずです。

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /

このコマンドは、ルートファイルシステムの使用状況のみを素早く表示します。他のファイルシステムの情報が必要なく、特定の箇所だけに関心がある場合に非常に便利です。

ユーザーのホームディレクトリの空き容量を確認する

サーバー管理業務の一環として、ユーザーがホームディレクトリで十分な容量を使えるようにしておく必要があります。多くのシステムでは、ユーザーのホームディレクトリは /home ディレクトリに配置されています。/home ディレクトリの空き容量を確認してみましょう。

次のコマンドを実行してください。

df -h /home

以下のような出力が表示される可能性があります。

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /

これは、/home ディレクトリがルートディレクトリ(/)と同じファイルシステム上にあることを示しています。このケースでは、ユーザーのホームディレクトリ用に十分な空き容量(19G)があることがわかります。

もしファイルシステムが満杯に近づいている(Use% の値が高い)場合は、どのユーザーが最も容量を消費しているか調査したり、ストレージ容量の拡張を検討したりする必要があります。

特定のファイルシステムの種類を除外する

時として、df の出力から特定のファイルシステムの種類を除外したい場合があります。たとえば、メモリ上に保存され物理的なディスク使用量を表さない一時的なファイルシステム(tmpfs)を除外したい場合です。これには -x オプションを使用します。

次のコマンドを実行して、tmpfs ファイルシステムを除外します。

df -h -x tmpfs

以下のような出力が表示されるはずです。

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
/dev/vdb        100G   17G   84G  17% /etc/hosts

出力から tmpfs ファイルシステムが消えていることに注目してください。物理的なディスク使用量のみに関心があり、仮想的なファイルシステムをフィルタリングしたい場合に役立ちます。

合計の要約を表示する

最後の仕上げとして、すべてのファイルシステムの合計要約を表示してみましょう。これには --total オプションを使用します。これは、すべてのファイルシステムを合わせた全体的なディスク使用量を確認したいときに特に便利です。

次のコマンドを実行してください。

df -h --total

以下のような出力が表示されるはずです。

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
tmpfs            64M     0   64M   0% /dev
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/vdb        100G   17G   84G  17% /etc/hosts
tmpfs           100M   50M   50M  50% /mnt/ramdisk
total           125G   18G  107G  15% -

これにより、全ファイルシステムのディスク使用量の合計が表示されます。最終行(total)を見ると、全体で 125G 中 18G が使用されており、全体の使用率は約 15% であることがわかります。

まとめ

この実験では、Linux システムのディスク容量を監視・分析するための df コマンドの使い方を学びました。以下の内容を含む、df コマンドのさまざまなオプションを実践しました。

  • df の基本的な使い方
  • -h による人間が読みやすい形式での表示
  • -T によるファイルシステムの種類表示
  • -i による i ノード使用状況の分析
  • オプションを組み合わせた包括的な分析
  • 特定のファイルシステムへのフォーカス
  • -x による特定のファイルシステム種類の除外
  • --total による合計要約の表示

これらのスキルは、効果的なシステム管理を行い、Linux サーバーの最適なパフォーマンスを維持するために不可欠です。システム管理の学習を続ける中で、df コマンドは非常に価値のあるツールになるでしょう。

この実験でカバーしきれなかったその他の df オプションには以下のようなものがあります。

  • -a: 擬似ファイルシステム、重複、アクセス不能なものを含むすべてのファイルシステムを表示
  • -k: サイズをキロバイト単位で表示(デフォルト)
  • -m: サイズをメガバイト単位で表示
  • -P: POSIX 出力形式を使用
  • --sync: 使用情報を取得する前に sync を呼び出す
  • -t: 特定の種類のファイルシステムのみを表示

df は強力なツールですが、ディスク使用量を監視するための多くのツールの 1 つに過ぎません。Linux の学習が進むにつれて、du(disk usage)、ncdu(NCurses Disk Usage)、およびさまざまなシステム監視ツールについても探索してみることをお勧めします。