Ist es möglich, eine Iteration von logrotate manuell auszuführen, ohne sie in einem bestimmten Intervall zu planen?
Ist es möglich, eine Iteration von logrotate manuell auszuführen, ohne sie in einem bestimmten Intervall zu planen?
Antworten:
Ja: logrotate --force $CONFIG_FILE
--force
Dateien gedreht werden, auch wenn sie die angegebenen Kriterien wie Größe, Alter usw. nicht erfüllen.
logrotate --force /etc/logrotate.d/
(nur Verzeichnisname) drehen
--force
die Rotation auch dann erzwungen wird, wenn Dateien nicht den Kriterien (Alter, Größe usw.) entsprechen. Beachten Sie jedoch, dass dies der einzige Weg ist, um echte Probleme zu erkennen, bei denen logrotate -d
keine Probleme auftreten würden (z. B. wenn mir ein Server ausgeht) Speicherplatz aufgrund von logrotate läuft seit Monaten nicht mehr ... und dank habe --force
ich herausgefunden, dass es File exists
Fehler gab. Ich habe diese Dateien manuell gelöscht und jetzt funktioniert die Rotation wieder korrekt!
logrotate -d [your_config_file]
Ruft den Debug-Modus auf und gibt Ihnen eine ausführliche Beschreibung dessen, was passieren würde. Die Protokolldateien bleiben jedoch unberührt.
logrotate --force
und arbeite gut.
Wenn Sie ein einzelnes bestimmtes Verzeichnis oder die Protokolldateien eines Dämons zwangsweise ausführen möchten, finden Sie die Konfiguration normalerweise in /etc/logrotate.d
und sie funktionieren eigenständig.
Beachten Sie, dass die in angegebene globale Konfiguration /etc/logrotate.conf
nicht gilt. Wenn Sie dies tun, sollten Sie sicherstellen, dass Sie alle gewünschten Optionen in der /etc/logrotate.d/[servicename]
Konfigurationsdatei angeben .
Sie können es ausprobieren, um -d
zu sehen, was passieren würde:
logrotate -df /etc/logrotate.d/nginx
Dann können Sie ausführen (am Beispiel von nginx):
logrotate -f /etc/logrotate.d/nginx
Und nur die Nginx-Protokolle werden gedreht.
logrotate -d /etc/logrotate.conf
wird auch durch alle anderen enthaltenen conf-Dateien ausgeführt.
Der Weg, um alle logrotate auszuführen, ist:
logrotate -f /etc/logrotate.conf
Dadurch wird die primäre Logrotate-Datei ausgeführt, die auch die anderen Logrotate-Konfigurationen enthält
Geben Sie den folgenden Befehl ein, um die angegebene Protokollrotation auszuführen:
logrotate -vf /etc/logrotate.d/custom
Optionen:
-v: Zeige den Prozess
-f: Lauf erzwingen
Benutzerdefiniert: Benutzerdefinierte Protokolleinstellung
zB: mongodb-log
# mongodb-log rotate
/data/var/log/mongodb/mongod.log {
daily
dateext
rotate 30
copytruncate
missingok
}
Bearbeiten Sie /var/lib/logrotate.status, um das Datum der letzten Drehung in der zu testenden Protokolldatei zurückzusetzen.
Dann renne logrotate YOUR_CONFIG_FILE
.
Sie können auch das Flag --force verwenden, aber wenn Sie logrotate.status bearbeiten, erhalten Sie mehr Präzision darüber, was gedreht wird und was nicht.
/var/lib/logrotate.status
Datei existiert nicht auf Debian Squeeze.
Erstellt ein Shell-Skript, um das Problem zu lösen.
http://www.ict.griffith.edu.au/anthony/software/#logrotate_one
Dieses Skript führt nur die einzelne logrotate-Unterkonfigurationsdatei aus, die sich in "/etc/logrotate.d" befindet, enthält jedoch die globalen Einstellungen aus der globalen Konfigurationsdatei "/etc/logrotate.conf". Sie können auch andere Optionen zum Testen verwenden ...
Zum Beispiel...
logrotate_one -d syslog