明日で切れるサーバー証明書を更新したとき、ふとWebminの画面を見たらディスクが100%使い切っていた。 なんでだ?
とりあえず /var/logの下のログを消したり、/usr/src や /usr/ports を消してみたものの、それでも使用率96%。
いったい何がそんなに圧迫しているんだ?
duは、ファイルやディレクトリ(サブディレクトリを含む)の使用量を調べるコマンドだ。引数なしで実行すると、カレントディレクトリに存在するファイルおよびサブディレクトリの総合計をKbytes単位で表示する。サブディレクトリがあれば、その合計も別に表示する。引数として調べたいディレクトリを指定すると、そのディレクトリの使用量が表示される。
なるほど。 やってみよう。
root@www:/ # df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ada0p2 57692028 51121236 1955432 96% /
devfs 1 1 0 100% /dev
root@www:/ # du -sh /*
8.0K /COPYRIGHT
1.4M /bin
244M /boot
3.5K /dev
4.0K /entropy
3.2M /etc
0B /home
11M /lib
296K /libexec
4.0K /media
4.0K /mnt
4.0K /net
4.0K /proc
10M /rescue
108K /root
6.8M /sbin
0B /sys
32K /tmp
4.0G /usr
43G /var
root@www:/ # du -sh /var/*
4.0K /var/account
12K /var/at
12K /var/audit
4.0K /var/authpf
23M /var/backups
34M /var/cache
8.0K /var/crash
16K /var/cron
6.2G /var/db
4.0K /var/empty
4.0K /var/games
4.0K /var/heimdal
78M /var/log
4.0K /var/mail
8.0K /var/msgs
4.0K /var/preserve
80K /var/run
4.0K /var/rwho
37G /var/spool
8.0K /var/tmp
28K /var/unbound
28K /var/yp
root@www:/ # du -sh /var/spool/*
37G /var/spool/clientmqueue
4.0K /var/spool/dma
4.0K /var/spool/lock
4.0K /var/spool/lpd
4.0K /var/spool/mqueue
4.0K /var/spool/opielocks
8.0K /var/spool/output
/var/spool/clientmqueueだけで37GBも消費している。 なんだっけ、コレ?
clientmqueueディレクトリ以下に吐き出される大量ファイルの対処法 | A Day In The Boy's Life
clientmqueueディレクトリは、SendmailなどのMTAが正常にメールが送信できなかった場合に一時的に溜め込まれるメールボックスのようなものです。
MTAはこの、clientmqueueディレクトリにメール(ファイル)がある限り再送しようと試みます。
さて、私の管理しているサーバー(RedHatES4)では特にSendmailなどのMTAは動かしていないのですが、このclientmqueueディレクトリ以下に大量のファイルが吐き出されていました。
原因は、cronで動かしていたバッチプログラムにエラーが発生しており、その標準エラー出力がメールとして信されるようになっていたのですが、MTAの設定はしていなかったためメールが送信できずにclientmqueueにメール(ファイル)が保存されたという具合です。
なるほど。 送信されなかったメールが溜まってるのね。 Webサーバーでメーラーは動かしてないしね。
サクッと消してしまいましょう。
root@www:/ # mv /var/spool/clientmqueue /var/spool/clientmqueue.0
root@www:/ # ls -l /var/spool
total 15768
drwxrwx--- 2 smmsp smmsp 16070144 Mar 31 18:15 clientmqueue.0
drwxrwx--- 2 root mail 512 Jul 21 2017 dma
drwxrwxr-x 2 uucp dialer 512 Mar 26 07:01 lock
drwxr-xr-x 2 root daemon 512 Jul 21 2017 lpd
drwxr-xr-x 2 root daemon 512 Jul 21 2017 mqueue
drwx------ 2 root daemon 512 Jul 21 2017 opielocks
drwxr-xr-x 3 root daemon 512 Jul 21 2017 output
root@www:/ # mkdir /var/spool/clientmqueue
root@www:/usr # chown smmsp:smmsp /var/spool/clientmqueue
root@www:/usr # chmod 770 /var/spool/clientmqueue
root@www:/usr # ls -l /var/spool
total 15772
drwxrwx--- 2 smmsp smmsp 512 Mar 31 18:15 clientmqueue
drwxrwx--- 2 smmsp smmsp 16070144 Mar 31 18:15 clientmqueue.0
drwxrwx--- 2 root mail 512 Jul 21 2017 dma
drwxrwxr-x 2 uucp dialer 512 Mar 26 07:01 lock
drwxr-xr-x 2 root daemon 512 Jul 21 2017 lpd
drwxr-xr-x 2 root daemon 512 Jul 21 2017 mqueue
drwx------ 2 root daemon 512 Jul 21 2017 opielocks
drwxr-xr-x 3 root daemon 512 Jul 21 2017 output
root@www:/usr # rm -R /var/spool/clientmqueue.0
root@www:/var/spool # du -sh /*
8.0K /COPYRIGHT
1.4M /bin
244M /boot
3.5K /dev
4.0K /entropy
3.2M /etc
0B /home
11M /lib
296K /libexec
4.0K /media
4.0K /mnt
4.0K /net
4.0K /proc
10M /rescue
108K /root
6.8M /sbin
0B /sys
32K /tmp
4.0G /usr
6.3G /var
root@www:/var/spool # df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ada0p2 57692028 12654308 40422360 24% /
devfs 1 1 0 100% /dev
root@www:/var/spool #
一気に使用率が24%まで下がりました。 今後については経過観察で、使用率の増加スピードが早すぎるなら抜本的に対策します。