Ich habe zwei Skripte im Verzeichnis "logrotate.d" hinzugefügt, damit meine Anwendungsprotokolle rotiert werden können. Dies ist die Konfiguration für eine von ihnen:
%Vor%Es gibt ein "logrotate" -Skript im "cron.daily" -Verzeichnis (das scheinbar täglich gemäß Cron-Logs läuft):
%Vor% Die erste echo-Anweisung funktioniert.
Aber ich finde, dass meine Anwendungsprotokolle nicht rotiert werden, während andere Protokolle wie httpd rotiert werden **
** Und ich sehe auch keine Ausgabe in der erwähnten "logrotate_error" Datei (hat Schreibrechte für alle Benutzer).
Das Syslog sagt jedoch: "logrotate: ALERT wurde abnormal mit [1]"
beendetAber wenn ich das gleiche "logrotate" im "cron.daily" -Skript manuell ausführe, scheint alles gut zu funktionieren.
Warum dreht es sich nicht während des täglichen Cron-Zeitplans? Mache ich hier etwas falsch?
Es wäre toll, wenn ich diese dringend benötigte Hilfe bekomme.
AKTUALISIERT: Es sieht so aus, als wäre es wegen selinux - die Log-Dateien in meinem Benutzer-Home-Verzeichnis haben Einschränkungen, die von selinux auferlegt werden, und das When-Logrotate-Skript wird ausgeführt:
%Vor%SELinux beschränkte den Zugriff auf logrotate auf Protokolldateien in Verzeichnissen, die nicht den erforderlichen SELinux-Dateikontexttyp hatten. Das Verzeichnis "/ var / log" hat den "var_log_t" Dateikontext, und logrotate konnte das Notwendige tun. Also die Lösung war, dies auf meine Anwendungsprotokolldateien und das übergeordnete Verzeichnis zu setzen:
%Vor%Ich hatte ein ähnliches Problem. Um dies zu beheben, überprüfte ich zunächst den Status von SELinux mit dem Befehl sestatus:
%Vor%Überprüfen Sie dann den SELinux-Sicherheitskontext, der mit ls --scontext auf Dateien und Verzeichnisse angewendet wird. Überprüfen Sie die Dateien, auf denen logrotate ausgeführt werden soll, und überprüfen Sie funktionierende Dateien wie / var / log / maillog:
%Vor%Verwenden Sie semanage, um den Dateikontext zu ändern.
%Vor%Nur um das oben genannte zu verallgemeinern und sicherzustellen, dass der gleiche SELinux-Kontext für alle zukünftigen Dateien korrekt eingestellt ist:
%Vor%Ich habe dieses Problem bei deaktiviertem SELINUX gesehen, weil das übergeordnete Verzeichnis der gedrehten Protokolldatei eine globale Schreibberechtigung hat, die von logrotate nicht begrüßt wird.
%Vor%chmod das übergeordnete Verzeichnis zu 755 löste das Problem
%Vor%SELinux verhindert / usr / sbin / logrotate vom Lesezugriff auf die Verzeichnis-Sites.
***** Plugin catchall (100. confidence) schlägt *****************************
vorWenn Sie der Meinung sind, dass logrotate standardmäßig Lesezugriff auf das Site-Verzeichnis erlauben sollte. Dann sollten Sie dies als Fehler melden. Sie können ein lokales Richtlinienmodul generieren, um diesen Zugriff zuzulassen.
%Vor%
Mache dich Erlauben Sie diesen Zugriff zunächst, indem Sie Folgendes ausführen:
Tags und Links logging logrotate cron cron-task log-rotation