stat --file-systemオプションの使い方|ファイルシステム情報を確認する方法を初心者向けに解説!
生徒
「先生、statコマンドでファイルシステムの情報も見られるって聞いたんですが、どうやって使うんですか?」
先生
「いい質問だね。ファイルやディレクトリそのものではなく、それが属しているファイルシステムの情報を見たいときには、--file-systemオプション、つまり-fを使うと便利なんだよ。」
生徒
「ファイルシステムって何ですか?」
先生
「ファイルシステムというのは、データを保存・管理するための仕組みのことなんだ。パソコンの中で、どのようにファイルが整理されているかを決めるルールのようなものと思ってもらえばいいよ。」
1. stat --file-system(または -f)とは?
statコマンドは、Linuxでファイルやディレクトリの詳細な情報を表示するコマンドですが、--file-systemオプション(省略形-f)を付けることで、そのファイルが保存されているファイルシステムの情報を確認することができます。
たとえば、使用できるディスク容量や、どんな種類のファイルシステム(ext4、xfsなど)か、ブロックサイズなどの技術的な情報が取得できます。
2. ファイルシステム情報を確認する基本コマンド
たとえば、ホームディレクトリ(~)がどのようなファイルシステムに属しているのか確認したい場合は、以下のように入力します。
stat --file-system ~
File: "~"
ID: 100000000 Namelen: 255 Type: ext4
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 61046784 Free: 12121212 Available: 11111111
Inodes: Total: 30523392 Free: 12345678
上記の結果には、以下のような意味があります:
- Type: ファイルシステムの種類(この例ではext4)
- Block size: ファイルを格納する最小単位のサイズ
- Blocks Total: ディスクの全ブロック数(容量)
- Blocks Free: 空きブロック数(空き容量)
- Inodes: ファイルやディレクトリの個数を管理する番号のようなもの
3. statとdfやmountの違いとは?
初心者が混乱しやすいのが、似たような情報を得られるコマンドとの違いです。
3-1. dfとの違い
dfコマンドは、ディスクの空き容量を簡潔に表示するコマンドです。
df ~
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 10000000 4000000 6000000 40% /
dfは見やすく簡単ですが、詳細なファイルシステムの種類などは表示されません。
3-2. mountとの違い
mountコマンドは、どのデバイスがどこに接続されているかを確認するコマンドです。
mount | grep sda1
/dev/sda1 on / type ext4 (rw,relatime)
mountは接続状態やオプションの確認に適していますが、容量やブロック数などの情報は出てきません。
その点で、stat -fは技術的な詳細を確認するのに非常に便利です。
4. stat -fのオプション組み合わせ例
基本的には-fオプション単体で使うことが多いですが、例えばファイルとそのファイルシステム情報を両方知りたい場合は、次のように2回使うこともあります。
stat sample.txt
File: sample.txt
Size: 128 Blocks: 8 IO Block: 4096 regular file
...
stat -f sample.txt
File: "sample.txt"
ID: 100000000 Namelen: 255 Type: ext4
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 61046784 Free: 12121212 Available: 11111111
Inodes: Total: 30523392 Free: 12345678
このように、statとstat -fを使い分けることで、ファイル自体とファイルシステムの両方の情報を取得できます。
5. どんなときにstat -fが役立つ?
このコマンドは、以下のような場面で特に役立ちます:
- Linuxサーバでどのパーティションに属しているかを調べたいとき
- ext4以外(xfsやbtrfsなど)のファイルシステムを使っているかを確認したいとき
- バックアップスクリプトなどで自動的に空き容量をチェックしたいとき
システム管理者だけでなく、初心者でも「ディスクがいっぱいで保存できない」といったトラブルの原因を探る手がかりとして活用できます。
まとめ
stat --file-systemの重要ポイントを総復習
今回は、Linuxコマンドの中でもファイルシステムの詳細情報を確認できるstat --file-systemについて解説してきました。このコマンドは、単にファイルの情報を見るだけではなく、そのファイルが保存されているディスクやパーティションの状態を詳しく把握できる点が大きな特徴です。
Linux環境において、ファイルシステムの理解は非常に重要です。なぜなら、ディスク容量不足や保存エラーなどのトラブルの多くは、ファイルそのものではなく、ファイルシステム側に原因があることが多いからです。そのため、stat -fコマンドを使いこなせるようになることで、トラブルシューティングのスピードが大きく向上します。
stat -fで確認できる情報の整理
stat --file-systemを使用すると、以下のような重要な情報を取得できます。
- ファイルシステムの種類(ext4やxfsなど)
- ブロックサイズと基本ブロックサイズ
- 総ブロック数と空きブロック数
- 利用可能なディスク容量
- inodeの総数と空き数
これらの情報を理解することで、ディスク使用状況の分析や容量管理がより正確に行えるようになります。特にinodeの枯渇は初心者が見落としがちなポイントなので注意が必要です。
実務で役立つ活用例
実際の現場では、stat -fは以下のような用途でよく利用されます。
- サーバーのディスク容量不足の原因調査
- バックアップ処理前の空き容量チェック
- ファイルシステムの種類確認
- スクリプトでの自動監視処理
サンプルプログラムで理解を深める
以下は、ディレクトリのファイルシステム情報を確認し、結果を簡単に把握するための基本的なコマンド例です。
stat -f /home
File: "/home"
ID: 100000000 Namelen: 255 Type: ext4
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 50000000 Free: 20000000 Available: 18000000
Inodes: Total: 25000000 Free: 20000000
また、シェルスクリプトと組み合わせることで、自動的にディスク状況を確認することも可能です。
#!/bin/bash
stat -f / | grep "Free"
上記のように記述することで、空きブロックの情報だけを抽出することができます。監視スクリプトなどに組み込めば、定期的なチェックにも活用できます。
dfやmountとの使い分けが重要
dfやmountコマンドと比較して、stat -fはより低レベルで詳細な情報を取得できるのが特徴です。そのため、普段はdfで簡単に確認し、問題が発生した場合にstat -fで詳細を調査するという使い分けが効率的です。
Linuxコマンドの理解を深めるうえで、このような使い分けを意識することは非常に重要です。単にコマンドを覚えるだけでなく、それぞれの役割を理解することで、実務での対応力が大きく向上します。
生徒
「statコマンドってファイルの情報だけじゃなくて、ファイルシステムの情報も見られるんですね。思っていたより便利でした。」
先生
「その通りだね。特に-fオプションを使うと、ディスクの状態まで詳しく確認できるから、サーバー管理ではよく使われるんだ。」
生徒
「dfコマンドとの違いもよく分かりました。普段はdfで、詳しく調べたいときにstatを使うんですね。」
先生
「いい理解だね。それに、inodeの情報も確認できるのは重要なポイントだよ。ディスク容量があるのにファイルが作れない場合は、inode不足が原因のこともあるからね。」
生徒
「なるほど、そういうトラブルの原因も分かるんですね。実務でも役立ちそうです。」
先生
「その通り。Linuxコマンドは一つ一つの役割を理解して使い分けることが大切だよ。今回の内容は基礎だけど、とても実用的だからしっかり覚えておこう。」