私たちは現在、Ruby on RailsアプリケーションサーバーでUbuntu 12.04 LTSから14.04 LTSにアップグレードしていますが、ログファイルが回転しなくなっていることに気付きました。
両方のマシンにファイルがあります /var/app-name/config/logrotate
私達のunixユーザーが所有しています deployer
次のような有効なlogrotateファイルが含まれています。
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
これは次にシンボリックリンクされます。 /etc/logrotate.d/
ディレクトリ app-name
私たちのUbuntu 12.04サーバーには、logrotate 3.7.8があり、これは問題なく動作します。それはに入ります var/app-name/log/
ディレクトリとすべてのログファイルをローテーションする
しかし、Ubuntu 14.04サーバーではlogrotate 3.8.7があり、アプリケーションのログファイルは回転しません。
私がこれをデバッグするとき sudo logrotate -d -f /etc/logrotate/.conf
次のような出力が得られます。
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
これをコードで追いかけていくと、この変更は3.8.xリリースストリームに追加されたようです。 https://github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
シンボリックリンクファイルの所有権をに変更した場合 /var/app-name/config/logrotate
に root
それからそれは再び働き始めます。しかし、このファイルは私のアプリケーションの一部であり、この状態で使用するcapistranoデプロイメントフレームワークによって作成されたものであるため、以前は問題なく動作していた場合は所有権を変更する必要はありません。
それでは、シンボリックリンク設定ファイルはlogrotateで推奨/サポートされていますか?
もしそうなら、それは私のファイルを使用することを拒否すべきです deployer
これはにシンボリックリンクされています /etc/logrotate.d
ディレクトリ、バグと見なされる?
それとも、アプリケーション固有のログローテーションのための別の推奨アプローチはありますか?
(また尋ねた unix StackExchange )