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
--forceDateien gedreht werden, auch wenn sie die angegebenen Kriterien wie Größe, Alter usw. nicht erfüllen.
logrotate --force /etc/logrotate.d/(nur Verzeichnisname) drehen
--forcedie 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 -dkeine Probleme auftreten würden (z. B. wenn mir ein Server ausgeht) Speicherplatz aufgrund von logrotate läuft seit Monaten nicht mehr ... und dank habe --forceich herausgefunden, dass es File existsFehler 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 --forceund 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.dund sie funktionieren eigenständig.
Beachten Sie, dass die in angegebene globale Konfiguration /etc/logrotate.confnicht 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 -dzu 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.confwird 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.statusDatei 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