Humanity

Edit the world by your favorite way

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し忘れてたのね…
その頃からの生き残りは今回問題となったファイルサーバ以外全て消滅したので、他のサーバは問題ないと思う。
ファイルサーバは作り直しがやりにくくて運用が面倒ですね。