Wir führen derzeit ein Upgrade von Ubuntu 12.04 LTS auf 14.04 LTS auf unseren Ruby-on-Rails-Anwendungsservern durch und haben festgestellt, dass die Protokolldateien nicht mehr rotieren.
Auf beiden Rechnern haben wir eine Datei /var/app-name/config/logrotate
unseres Unix-Benutzers, deployer
die eine gültige Logrotate-Datei wie folgt enthält:
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
Dies wird dann in das /etc/logrotate.d/
Verzeichnis als symbolisiertapp-name
Auf unserem Ubuntu 12.04 Server haben wir Logrotate 3.7.8, das einwandfrei läuft. Es geht in das var/app-name/log/
Verzeichnis und dreht alle aus Protokolldateien
Aber auf dem Ubuntu 14.04 Server haben wir Logrotate 3.8.7, das die Logfiles für unsere Anwendung nicht dreht.
Wenn ich das über debugge sudo logrotate -d -f /etc/logrotate/.conf
debugge, erhalte ich die folgende Ausgabe:
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
Dem Code nach zu urteilen, scheint diese Änderung für den Release-Stream 3.8.x hinzugefügt worden zu sein: https://github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
Wenn ich den Besitzer der Datei ändere, auf die ein Link verweist /var/app-name/config/logrotate
aufroot
, funktioniert sie wieder. Da diese Datei jedoch Teil meiner Anwendung ist und mit dem Capistrano-Bereitstellungsframework erstellt wurde, das wir in diesem Zustand verwenden, möchte ich lieber nicht den Besitz ändern, wenn es früher einwandfrei funktioniert hat.
Werden symbolisch verknüpfte Konfigurationsdateien von logrotate empfohlen / unterstützt?
Und wenn ja, sollte es deployer
abgelehnt werden, meine Datei (im Besitz von ) zu verwenden, die mit dem Symbol verknüpft ist/etc/logrotate.d
Verzeichnis ist, als Fehler angesehen werden?
Oder gibt es einen anderen empfohlenen Ansatz für die anwendungsspezifische Protokollrotation?
(auch bei Unix StackExchange gefragt )