VMの空き容量がなくなった場合の対処法(logファイル真っ新編)(逃)

VMを使っていれば誰もがいつかはたどり着くだろうエラー文 You don't have enough free space 「容量がいっぱいになりましたよ」という事を表しています.

今回はVM自体のディスク容量は変えずに、ログがたくさん入っているlogファイルを真っ新にするために色々書いていきます.

~~というかVM自体のディスク容量を拡張するのが分からなかったのでとりあえずの策でこれをしました~~

1. 何の容量がいっぱいなのかを確認する

~$ df -hとコマンドを入力してみましょう.

~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           395M  1.2M  394M   1% /run
/dev/sda2        16G   16G    0G 100% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop2       90M   90M     0 100% /snap/core/7917
/dev/loop1      121M  121M     0 100% /snap/docker/423
/dev/loop0       90M   90M     0 100% /snap/core/8039
/dev/loop3      123M  123M     0 100% /snap/docker/418
tmpfs           395M     0  395M   0% /run/user/1000
tmpfs           2.0G     0  2.0G   0% /media/{directory}

/dev/sda2のUse%が100%になっているのでここがいっぱいになっていることがわかります.

2. 各ディレクトリの使用量を確認する

各ディレクトリの使用量を確認するため~$ sudo du -s /* | sort -rnと入力してみましょう.

cdsl@ubuntu-study1:~$ sudo du -s /* | sort -rn
du: cannot access '/proc/4457/task/4457/fd/4': No such file or directory
du: cannot access '/proc/4457/task/4457/fdinfo/4': No such file or directory
du: cannot access '/proc/4457/fd/3': No such file or directory
du: cannot access '/proc/4457/fdinfo/3': No such file or directory
7753528 /var
4315996 /usr
2018308 /swap.img
1452921 /snap
1090188 /lib
228924  /home
213840  /boot
15520   /sbin
15248   /bin
8028    /etc
4252    /root
1156    /run
60      /tmp
16      /opt
16      /lost+found
12      /app
4       /srv
4       /mnt
4       /media
4       /lib64
0       /vmlinuz.old
0       /vmlinuz
0       /sys
0       /proc
0       /initrd.img.old
0       /initrd.img
0       /dev

ここで/varと/usrの使用量が高いことがわかりました. 更に範囲を絞ってみます. sudo du -s /var | sort -rnと入力すると/varの中身で何がどれだけ使用しているかが分かります.

cdsl@ubuntu-study1:~$ sudo du -h /var | sort -hr | head
7.4G    /var
6.0G    /var/log
1.2G    /var/lib
801M    /var/log/journal/da8f6c0049f94e72bba858b7ed9a0591
801M    /var/log/journal
699M    /var/lib/snapd
421M    /var/lib/snapd/snaps
335M    /var/log/elasticsearch
215M    /var/snap/docker/common/var-lib-docker
215M    /var/snap/docker/common

やはり/logがめちゃんこ使われていますね. logファイルは主にあれやこれや作業した時の記録がされている場所、みたいなものです. ログの種類では、 - アクセスログ:(遊びに来た人が)やったことの記録 - エラーログ:やばいことになった状況の記録 - ワーニングログ:やばいことになりそうだった状況の記録

みたいなものがあります.(他にもめちゃんこあります)

特定用途以外には使わないですがこのように何かするたびに溜まっていくので気が付けば6GBにもなってしまうんですね…(塵も積もれば山となるかな)

3. logディレクトリの中身を削除しよう

rootにログインします

~$ sudo -i
root@ubuntu-study1:~# 

以下を入力します

root@ubuntu-study1:~# find /var/log/ -type f -name \* -exec cp -f /dev/null {} \;

このようにすると~~logファイルの中身を削除~~logファイルを空ファイルで上書きすることができます.

最後. 確認

もう一度df -hと入力して確認しましょう

~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           395M  1.2M  394M   1% /run
/dev/sda2        16G  9.2G  5.8G  62% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop2       90M   90M     0 100% /snap/core/7917
/dev/loop1      121M  121M     0 100% /snap/docker/423
/dev/loop0       90M   90M     0 100% /snap/core/8039
/dev/loop3      123M  123M     0 100% /snap/docker/418
tmpfs           395M     0  395M   0% /run/user/1000
tmpfs           2.0G     0  2.0G   0% /media/{directory}

容量が空いていればOKです.