PR

Linuxサーバでディスク容量不足になった時の調査と対処法

スポンサーリンク
Linux

Linuxサーバの運用中に、ディスクフル(使用容量100%)になり何もファイルを操作できなくなったことがありませんか。

初歩的なコマンドですが、その際の対応方法を紹介したいと思います。

全ファイルシステムの容量確認

まずはdfコマンドで全ファイルシステムの容量を確認し、どのファイルシステムが容量不足になっているかを確認します。

僕はdfコマンドには -hPオプションを付けるのがクセになっています。容量単位が見やすくなり、改行もなくなるのでおすすめです。

[root@cent77 ~]# df -hP
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 484M     0  484M   0% /dev
tmpfs                    496M     0  496M   0% /dev/shm
tmpfs                    496M  6.8M  489M   2% /run
tmpfs                    496M     0  496M   0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  5.3G   12G  31% /
/dev/sda1               1014M  140M  875M  14% /boot
192.16.30.100:/dekinfs   4.5T  4.5T     0 100% /nfs_srv
tmpfs                    100M     0  100M   0% /run/user/0

どのディレクトリが容量を多く使用しているか確認

容量不足のファイルシステムを特定できたら、次はduコマンドでどのディレクトリが使用容量が多いかを調べます。

[root@cent77 ~]# cd /nfs_srv
[root@cent77 nfs_srv]# du -hs *
20K     dekien
950M    bin
1.4T    archive
3.0T    backup

後は容量の大きなディレクトリ配下に対して、duコマンドで同じように調査、lsコマンドで大きなファイルを探してrmコマンドでの削除や、圧縮や移動をして空き容量を増やすだけです。

findコマンドで容量の多いファイルを探す

以下のfindコマンドのオプションとlsコマンドで、一定サイズ以上のファイルを探すことも可能です。

find <探したいディレクトリ> -size +<指定容量> |xargs ls -lh

以下の例では、500M以上のファイルを探した結果となります。

[root@cent77 ~]# [root@cent77 ~]# find /tmp -size +500M |xargs ls -lh
-rw-r--r-- 1 root root 521M Mar 29 13:48 /tmp/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar