logrotate.confのownerがrootじゃなかったためにずっとlogrotateが動いていなかった(cronでアラートも飛ばない)
Debianでは/etc/cron.daily/logrotateで日次で動いてるはずのlogrotateがなぜか仕事をしてくれてなくて、
ログがとんでもないサイズになってdisk fullになってた。
原因はタイトルで言った通り、logrotate.confのownerがrootじゃなかったため。
ただ以下の点で厄介。というかlogrotateさんちょっと残念。
- ownerがrootじゃないためにスキップしてもエラー出力等は一切なし
- logrotateに-vオプションを渡すとやっとエラーの内容を吐きだしてくれる
- /etc/logrotate.confをスキップした場合、exit codeは0
- よってsyslogにも出ない
以下は-vオプションを渡した場合の出力(しつこいけど、渡さなければ何の出力も出ない)。
tyru@xxx:~$ sudo logrotate -v /etc/logrotate.conf Ignoring /etc/logrotate.conf because the file owner is wrong (should be root). Handling 0 logs
まぁよっぽどの事がなければlogrotate.confのownerなんて変わらないと思うので、自分が悪いんだけど。
ちなみに昔Capistranoで設定ファイルデプロイしてた頃の名残でownerがcapistranoになってた。rootにchownし忘れてたのね…
その頃からの生き残りは今回問題となったファイルサーバ以外全て消滅したので、他のサーバは問題ないと思う。
ファイルサーバは作り直しがやりにくくて運用が面倒ですね。