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 Lesen Sie die Antwort von slm , um eine genaue Erklärung für cron.daily zu erhalten. logrotate
in der Ausgabe des Befehls crontab -l
und führen Sie die Befehlszeile aus
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