So wird die Änderung der Protokollrotation wirksam

99

Ich bin diesem Link gefolgt , um die Log-Rotation-Konfiguration für RHEL 6 zu ändern

Was muss ich tun, damit die Änderung in der Konfigurationsdatei wirksam wird?

BufBills
quelle

Antworten:

139

logrotateverwendet, um crontabzu arbeiten. Es handelt sich nicht um einen Daemon, sondern um eine geplante Arbeit, sodass die Konfiguration nicht neu geladen werden muss.
Wenn das crontabausgeführt wird logrotate, wird Ihre neue Konfigurationsdatei automatisch verwendet.
Wenn Sie Ihre Konfiguration testen müssen, können Sie sie auch logrotateselbst mit dem folgenden Befehl ausführen :

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

Oder wie es in den Kommentaren erwähnt, identifizieren Sie die logrotateZeile in der Ausgabe des Befehls crontab -lund führen Sie die Befehlszeile verweisen slm Antwort eine genaue cron.daily Erklärung haben

Kiwy
quelle
1
Um Ihre Antwort zu ergänzen, wird der Cron-Eintrag für logrotateeinmal am Tag ausgeführt.
mkc
@Ketan, wie kann ich es sofort beeinflussen lassen? Danke
BufBills
Nicht sicher. Eine Möglichkeit besteht darin, den entsprechenden Eintrag von crontab über zu finden crontab -lund auszuführen.
mkc
2
Wenn Sie möchten, dass es sofort wirksam wird, führen Sie die Cron-Nachwörter aus.
slm
2
logrotateHat man eine -dOption zum Testen (oder "Debuggen"), würde ich empfehlen, diese mindestens einmal damit auszuführen.
FrustratedWithFormsDesigner
36

Die meisten logrotateSetups, die ich in verschiedenen Distributionen gesehen habe, sind nicht mehr verfügbar /etc/cron.daily. Es gibt dort ein Shell-Skript mit dem passenden Namen logrotate.

Beispiel

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

Manueller Lauf

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, wird Ihnen gezeigt, wie Sie es auch logrotatemanuell ausführen können , indem Sie einfach logrotateden Pfad zu seiner Konfigurationsdatei eingeben.

#!/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
slm
quelle
31

Es sollte automatisch über cron erfolgen. Sie können ihn zwingen, Ihre Änderungen zu testen.

Für globale logrotate:

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

Für eine einzelne conf-Datei:

sudo logrotate -v -f /etc/logrotate.d/someapp.conf
maskeda
quelle
11
-fFür Force-Rotation gibt es auch -dfür Debug, was auch Trockenlauf ist, es wird alles gedruckt, was es getan hätte, aber nicht wirklich tun.
ThorSummoner
5

Auf meinem CentOS 6.5-Rechner zum Einrichten von logrotate für Nginx musste ich Folgendes tun:

logrotate /etc/logrotate.d/nginx

Und dann habe ich geprüft, ob Logrotate auf meine neue Nginx-Konfiguration aufpasst:

cat /var/lib/logrotate.status
Raubvogel
quelle