logrotateが動いてなくて、logrotate.statusは更新されてて、dry-runするとメッセージでは「さっき更新したでしょ」とスキップされて、でもログファイルはサーバ建立時からずっとそのまま。なんだこれ。
とりあえず-fで強制したら動いた。明日以降、要観察。
いや、動いてねえわ。いくつかは更新されたけど、対象全部はローテーションされてない。
logrotateでmissingok付いてるのに、エラー出るのなんで。
logrotateの問題、完全に理解した。 もっと見る
問題のサーバはkusanagiで建ててるWordPressで、複数のプロファイルが稼働していて、/blog/、/blog-a/、/blog-b/みたいになっていた。管理の都合上、この/blog-a/、/blog-b/を/a/、/b/でシンボリックリンクを張っていたところ、ログローテーションの対象ファイルとして指定されている/home/kusanagi/*/log/nginx/*.logが本来のプロファイルとシンボリックリンク両方で実行されることになり、エラーとなっていた。missingokが付いてるのにエラーになることについては不明。/home/kusanagi/*/log/nginx/*.logの定義を/home/kusanagi/blog-*/log/nginx/*.logに書き換えることで、ひとまず解決。
思考の /dev/null
logrotateの問題、完全に理解した。
問題のサーバはkusanagiで建ててるWordPressで、複数のプロファイルが稼働していて、/blog/、/blog-a/、/blog-b/みたいになっていた。
管理の都合上、この/blog-a/、/blog-b/を/a/、/b/でシンボリックリンクを張っていたところ、ログローテーションの対象ファイルとして指定されている/home/kusanagi/*/log/nginx/*.logが本来のプロファイルとシンボリックリンク両方で実行されることになり、エラーとなっていた。
missingokが付いてるのにエラーになることについては不明。
/home/kusanagi/*/log/nginx/*.logの定義を/home/kusanagi/blog-*/log/nginx/*.logに書き換えることで、ひとまず解決。