Linuxのディスク容量が不足したときの対応方法
ディスク容量を圧迫している原因を特定して、不要なファイルがあるなら削除をおこないます。削除ができない場合はディスクの拡張を行うしかありません。
ディスク容量圧迫の原因を調査するにはdfコマンドとduコマンドを使用します。
dfでディスク使用率確認して、duでファイルを特定します。
Linuxディスク容量調査コマンド
dfコマンド
dfは「disk filesystem」の略でディスクの使用状況を表示するために利用します。マウントポイントも確認することができます。まずはdfコマンドでどのファイルシステムの容量がひっ迫しているかを確認します。
実行結果
df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 50G 20G 30G 40% /
tmpfs tmpfs 1.9G 1.0M 1.9G 1% /dev/shm
/dev/sdb1 xfs 100G 60G 40G 60% /mnt/data
・Filesystem: ディスクのデバイス名やファイルシステムの識別子。
・Type: ファイルシステムの種類。
・Size: ディスクの総容量。
・Used: 使用済み容量。
・Avail: 利用可能な容量。
・Use%: 使用率(パーセンテージ)。
・Mounted on: マウントポイント。
-Thはオプションで以下の意味があります。
オプション | 説明 |
---|---|
-T(type) | ァイルシステムのタイプ(種類)を表示 |
-h(human-readable) | 人間が読みやすい形式で出力(例えば、バイト数をKB、MB、GB単位で表示)。 |
duコマンド
du は "disk usage" の略です。このコマンドを使うと、ディレクトリやファイルがどれだけのディスクスペースを消費しているかを確認できます。
基本構文
du [オプション] [ファイル/ディレクトリ]
duコマンドのオプションは以下のようなものがあります。
オプション | 説明 |
---|---|
-s(summarize)「概要」 | 合計だけを簡潔に表示、指定したディレクトリの合計サイズを知りたい場合に便利です。 |
-h(human-readable) | 人間に読みやすい形式で出力(サイズをKB、MB、GBで表示) |
-c(total) | すべての項目の合計を最後に表示。 |
-a(all) | 指定したディレクトリ内の全てのファイルとディレクトリのディスク使用量を表示 |
実行結果
$ du -shc /* | sort -rh
3.3G total
2.4G /usr
834M /opt
74M /var
46M /aws
4.8M /etc
1.2M /tmp
108K /run
104K /home
4.0K /srv
4.0K /root
4.0K /mnt
4.0K /media
4.0K /local
4.0K /boot
まずは対象のファイルシステムのどのディレクトリの使用率が高いかを確認します。-sオプションを使用することでディレクトリごとの容量を確認できます。sortに-hオプションをつけることで数値の後に接尾辞(例えば、K、M、G など)が付いたデータをソートすることが可能になります。
duコマンドで容量の大きいディレクトリが判明したら、そのディレクトリに対してさらにduコマンドを実行することで、対象のファイルを絞り込んでいけます。
$ du -ah /usr/ | sort -rh | head -10
2.4G /usr/
1.1G /usr/local
450M /usr/local/aws-cli/v2
450M /usr/local/aws-cli
425M /usr/bin
384M /usr/local/lib
376M /usr/lib64
338M /usr/share
225M /usr/local/aws-cli/v2/2.17.10/dist
225M /usr/local/aws-cli/v2/2.17.10
ファイルを特定する時は-aオプションを付けることで、指定したディレクトリ配下のすべてのディレクトリ、ファイルの容量を調べることができます。数が多い場合はheadコマンドで表示数を絞りましょう。この例ではサイズの大きい上位10個を表示しています。
容量を圧迫する要因
ログファイルの増加
特にログローテーションの設定が適切でない場合は古いログが削除されず、ファイル容量を圧迫要因になります。適切にローテーションや削除の設定をする必要があります。
一時ファイルの蓄積
一時ファイルやキャッシュがディスクスペースを占有することがあります。特に、/tmpや/var/tmpディレクトリに大量のファイルが溜まることがあります。
以下参考記事