Ich folgte diesem Link , um das Protokoll zu ändern -rotate Konfiguration für RHEL 6

Was kann ich tun, nachdem ich die Konfigurationsdatei geändert habe, damit dies wirksam wird?

Antwort

logrotate verwendet crontab zum Arbeiten. Es ist eine geplante Arbeit, kein Daemon, daher muss die Konfiguration nicht neu geladen werden.
Wenn die crontab logrotate ausführt, wird sie ausgeführt verwendet Ihre neue Konfigurationsdatei automatisch.
Wenn Sie Ihre Konfiguration testen müssen, können Sie logrotate auch selbst mit dem folgenden Befehl ausführen:

logrotate /etc/logrotate.d/your-logrotate-config 

Oder identifizieren Sie, wie in den Kommentaren erwähnt, die Zeile logrotate in der Ausgabe des Befehls crontab -l und führen Sie die Befehlszeile aus Lesen Sie die Antwort von slm , um eine genaue Erklärung für cron.daily zu erhalten.

Kommentare

  • Um Ihre Antwort zu ergänzen, wird der Cron-Eintrag für logrotate einmal täglich ausgeführt.
  • @Ketan, wie kann ich es sofort beeinflussen? danke
  • Wenn Sie möchten, dass es sofort wirksam wird, führen Sie die Cron-Nachwörter aus.
  • logrotate hat eine -d Option zum Testen (oder " Debuggen "), I ' d empfehlen, es mindestens einmal damit auszuführen.
  • Eine sehr häufige Frustration ist die neue, erforderliche su-Direktive su root syslog. Dies bringt die Logrotate zum Stillstand, wenn sie nicht hinzugefügt wird. Um die Frustration der Leute ' abzurunden, wenn sie die Direktive hinzufügen und dann die Logrotate ausführen (erzwingen), spuckt sie weiter aus " error: skipping "/var/log/syslog" because parent directory has insecure permissions (It's world writable or writable by group which is not "root" ... " für 20 Stunden nach der Konfigurationsänderung, als ob sich die Einstellungen / der Prozess ändern würden werden zwischengespeichert!? Wenn Sie dort nicht weiterkommen, chgrp on / var / log to root, führen Sie logrotate aus, chgrp back to syslog. Es wird beim nächsten Lauf gelöscht.

Antwort

Die meisten logrotate Setups, die ich in verschiedenen Distributionen gesehen habe, laufen aus dem /etc/cron.daily. Dort gibt es ein Shell-Skript mit dem treffenden Namen logrotate.

Beispiel

$ ls -l /etc/cron.daily/logrotate -rwxr-xr-x 1 root root 180 May 18 2011 /etc/cron.daily/logrotate 

Manuelle Ausführung

Wenn Sie es manuell ausführen möchten, führen Sie das Skript einfach als root aus:

$ sudo /etc/cron.daily/logrotate 

Wenn Sie sich ein Skript ansehen, das normalerweise dort vorhanden ist, zeigt es Ihnen, wie Sie auch logrotate manuell, indem Sie einfach logrotate + den Pfad zu seiner Konfigurationsdatei ausführen.

#!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 

Antwort

Es sollte automatisch über cron erfolgen. Sie können es erzwingen, um Ihre Änderungen zu testen.

Für die globale Protokollierung:

sudo logrotate -v -f /etc/logrotate.conf 

Für eine einzelne conf-Datei:

sudo logrotate -v -f /etc/logrotate.d/someapp.conf 

Kommentare

  • -f für die Kraftdrehung gibt es auch -d für das Debuggen, das auch im Trockenlauf ausgeführt wird. Es gibt alles aus, was es getan hätte, aber nicht tatsächlich.

Antwort

Auf meinem CentOS 6.5-Computer zum Einrichten der Protokollierung für Nginx musste ich Folgendes tun:

logrotate /etc/logrotate.d/nginx 

Und dann habe ich überprüft, ob sich logrotate um meine neue nginx-Konfiguration kümmert:

cat /var/lib/logrotate.status 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.