Linuxのディスク容量が足りないときの確認方法|df・duで原因を調べる手順
Linuxサーバーを使っていると、突然「ディスク容量が足りない」という問題が起きることがあります。
Webサイトが正常に表示されなくなったり、ログが書き込めなくなったり、アプリケーションがエラーを出したりする場合もあります。
ただし、ディスク容量が不足しているからといって、すぐにファイルを削除するのは危険です。
まずはどのディスクがどれくらい使われているのかを確認し、その後に容量を消費している場所を特定することが重要です。
Linuxでは、dfとduという2つのコマンドを使うと、ディスク容量の状況を調べやすくなります。
まず「本当にディスク容量が不足しているか」を確認する
最初に実行したいのがdfコマンドです。
df -h
-hは、人間が読みやすい単位で容量を表示するためのオプションです。
実行すると、たとえば次のような情報が表示されます。
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 46G 4.0G 92% /
ここで特に確認したいのがUse%です。
上の例では、ルートファイルシステムの使用率が**92%**になっています。
このように使用率が高くなっている場合は、次に「どのディレクトリが容量を使っているのか」を調べます。
次に「どこが容量を使っているか」を調べる
ディスク全体の使用率が分かったら、duコマンドを使って容量を多く使っている場所を探します。
たとえばルートディレクトリ直下を確認するなら、
sudo du -sh /*
とします。
duはファイルやディレクトリが使用している容量を確認するためのコマンドです。
-sは合計値を表示し、-hは読みやすい単位で表示します。
実行結果から、
/var
/home
/usr
/opt
など、容量の大きいディレクトリを探します。
たとえば/varが大きいことが分かった場合は、さらに、
sudo du -sh /var/*
と実行して、/varの中でどこが容量を使っているのかを絞り込みます。
このように、
ディスク全体 → 大きなディレクトリ → さらにその中
という順番で調べていくと、原因を見つけやすくなります。
/var/logが大きくなっていないか確認する
Linuxサーバーで容量を消費する原因の一つがログです。
システムやWebサーバー、アプリケーションなどがログを保存していると、長期間運用することでファイルが大きくなることがあります。
まず、
sudo du -sh /var/log
でログディレクトリの使用量を確認できます。
さらに、
sudo du -sh /var/log/*
とすれば、どのログファイルやディレクトリが容量を使っているのか調べられます。
ただし、大きなログファイルを見つけたからといって、すぐに削除してはいけません。
ログには障害の原因を調べるための重要な情報が含まれていることがあります。
また、Linuxではログローテーションによって古いログを整理する仕組みが用意されている場合もあります。
削除する前に、そのログが何のために保存されているのか確認することが大切です。
Dockerを使っている場合は不要なデータも確認する
Dockerを使っているサーバーでは、コンテナだけでなくイメージやボリュームなどがディスクを使用します。
Dockerの使用状況を確認するには、
docker system df
が利用できます。
これによってDocker関連のデータがどれくらい容量を使っているのか確認できます。
不要になったイメージなどが大量に残っている場合は、Dockerの整理が必要になることがあります。
ただし、現在使用しているコンテナや、後から必要になるイメージ・ボリュームまで削除すると問題が発生する可能性があります。
「不要そうだから全部削除する」という操作は避け、何を削除するのか確認してから整理するようにしてください。
大きなファイルを探す
ディレクトリ単位ではなく、大きなファイルそのものを探したい場合もあります。
たとえば、次のようなコマンドで大きなファイルを検索できます。
sudo find / -type f -size +1G
これは、ルートディレクトリ以下から1GBを超えるファイルを探す例です。
ただし、サーバーによっては大量のファイルを検索するため、実行に時間がかかることがあります。
また、システムが使用するファイルまで検索対象になるため、表示されたファイルを内容を確認せず削除するのは避けてください。
dfでは空き容量があるのに容量不足になる場合
少し分かりにくいケースとして、df -hを見ると空き容量があるのに、ファイルを作成できないことがあります。
この場合はinodeの使用量を確認してみてください。
df -i
inodeは、Linuxファイルシステムがファイルやディレクトリを管理するために使用する情報です。
容量そのものに余裕があっても、小さなファイルが大量に作られてinodeを使い切ると、新しいファイルを作成できなくなる場合があります。
そのため、ディスク容量不足を調べるときは、
df -h
df -i
の両方を確認すると原因を切り分けやすくなります。
ファイルを削除したのに空き容量が増えない場合
もう一つ注意したいのが、ファイルを削除した後もディスク使用量が減らないケースです。
Linuxでは、プロセスが削除済みのファイルを開いたまま使用している場合があります。
このような場合、ファイル自体はディレクトリから見えなくなっていても、プロセスがファイルを保持しているため、ディスク領域がすぐに解放されないことがあります。
原因を調べる方法の一つとして、
sudo lsof +L1
があります。
表示されたプロセスを確認し、なぜ削除済みファイルを保持しているのか調べる必要があります。
ここでも、表示されたプロセスをいきなり停止するのではなく、サービスへの影響を確認してから対応してください。
容量不足のときにやってはいけないこと
ディスク容量が不足すると焦って不要そうなファイルを削除したくなりますが、サーバーでは特に注意が必要です。
次のような操作は、原因を確認せずに実行しないほうが安全です。
- システムディレクトリのファイルをまとめて削除する
/var以下を確認せず削除する- Dockerのデータをすべて削除する
- ログを無条件に削除する
- 使用中のデータベースファイルを削除する
- バックアップファイルを確認せず消す
「大きいファイル=不要なファイル」とは限りません。
まず使用目的を確認し、必要であればバックアップを取ったうえで整理することが重要です。
Linuxのディスク容量不足を調べる基本手順
原因が分からない場合は、次の順番で確認すると整理しやすくなります。
1.ディスク全体を確認する
df -h
使用率が高いファイルシステムを確認します。
2.inodeを確認する
df -i
ファイル数が多すぎることによる容量不足ではないか確認します。
3.大きなディレクトリを探す
sudo du -sh /*
容量を多く使っている場所を探します。
4.原因のディレクトリをさらに調べる
たとえば/varが大きければ、
sudo du -sh /var/*
のように範囲を絞ります。
5.大きなファイルを確認する
sudo find / -type f -size +1G
などを使って、大容量ファイルを探します。
6.削除する前に用途を確認する
最後に、見つかったファイルが本当に不要なのか確認します。
この順番を守るだけでも、原因不明のままファイルを削除してしまうリスクを減らせます。
ディスク容量不足は「削除」だけで解決しない
サーバーの容量が不足した場合、不要なファイルを削除するだけでは根本的な解決にならないことがあります。
たとえばログが毎日増え続けているのであれば、ログローテーションや保存期間の見直しが必要です。
バックアップが原因なら、バックアップの保存数や保存先を見直す必要があります。
Docker関連のデータが増えているなら、イメージやコンテナ、ボリュームの運用方法を確認したほうがよいでしょう。
つまり、
容量を使っている原因を見つける → 一時的に整理する → なぜ増えたのか確認する
という流れが重要です。
まとめ
Linuxサーバーのディスク容量が足りなくなったときは、いきなりファイルを削除するのではなく、まず原因を特定しましょう。
基本的には、
df -h
df -i
sudo du -sh /*
の3つから確認すると、ディスク使用量やinode、大きなディレクトリを調べることができます。
その後、/var/log、Dockerデータ、大容量ファイルなどを確認し、何が容量を消費しているのかを絞り込みます。
特にサーバーでは、ログ・データベース・バックアップ・Dockerボリュームなど、一見すると不要に見えても実際には必要なデータがあります。
そのため、容量不足を解決するときは「とにかく削除する」のではなく、原因を確認してから安全に整理することが大切です。
Linuxのディスク容量はどのコマンドで確認できますか?
まずはdf -hを使うと、ファイルシステムごとの容量、使用量、空き容量、使用率を確認できます。
df -hとduは何が違いますか?
dfはファイルシステム全体の使用状況を確認するために使い、duはディレクトリやファイルがどれくらい容量を使用しているか調べるために使います。
ディスク容量が100%になるとどうなりますか?
新しいファイルやログを書き込めなくなり、アプリケーションやWebサイトに問題が発生する可能性があります。サービスによっては正常に動作できなくなることもあります。
ファイルを削除したのに空き容量が増えないのはなぜですか?
プロセスが削除済みのファイルを開いたまま保持している可能性があります。その場合はlsof +L1などを使って確認できます。
ディスク容量不足を防ぐにはどうすればいいですか?
定期的にディスク使用率を監視し、ログやバックアップ、Dockerデータなどが増え続けていないか確認することが重要です。必要に応じてログローテーションや保存期間も見直します。
