logrotate cron job rotiert bestimmte Protokolle nicht

9

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]"

beendet

Aber 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%     
Ashok 27.03.2013, 05:49
quelle

5 Antworten

10

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%     
Ashok 24.05.2013 18:19
quelle
5

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%     
DarrellB 05.08.2014 16:43
quelle
2

Nur um das oben genannte zu verallgemeinern und sicherzustellen, dass der gleiche SELinux-Kontext für alle zukünftigen Dateien korrekt eingestellt ist:

%Vor%     
Ioannis Drositis 29.04.2015 09:20
quelle
0

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%     
Sleem 17.05.2016 12:53
quelle
0
  

SELinux verhindert / usr / sbin / logrotate vom Lesezugriff auf die Verzeichnis-Sites.

     

***** Plugin catchall (100. confidence) schlägt *****************************

vor      

Wenn 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.
  Mache dich   Erlauben Sie diesen Zugriff zunächst, indem Sie Folgendes ausführen:

%Vor%
    
MIkeH 08.03.2017 19:09
quelle