Ich verwende eine virtuelle kvm ubuntu 10.04-Maschine, um einige Funktionen eines Kernelmoduls zu testen. Ich durchsuche die /var/log
Dateien, um die Kernel-Nachrichten zu diesem Modul zu beobachten.
Um von einem sauberen Zustand aus zu starten, entferne ich Protokolldateien, die ältere Nachrichten enthalten, indem ich rm -rf /var/log/*
die virtuelle Maschine ausführe und dann neu starte. Nach dem Neustart enthalten die neuen Protokolldateien jedoch weiterhin die alten Protokollmeldungen. Es dauert ungefähr 5-6 Zyklen, um Dateien zu löschen und die virtuelle Maschine neu zu starten, um diese Protokolldateimeldungen endgültig zu entfernen.
Warum passiert dies? Gibt es eine einfachere Möglichkeit, Protokolldateien zu bereinigen?
logrotate
ist die offizielle Linux-Software zum automatischen Löschen und Drehen von Protokollen.Antworten:
Der einfachste Weg, die alten Protokolle zu bereinigen, besteht darin, sie nicht zu entfernen.
Der beste Weg, um die Protokolle zu bereinigen, ist entweder
logrotate
wie Hanan N. betonte oder:für jede der Protokolldateien. Ich bin nicht genau sicher, auf welche Protokolleinträge Sie sich beim vorherigen Start beziehen, aber wenn Sie dies nach dem Start löschen möchten, können Sie den obigen Befehl in ein
/etc/rc.local
Skript einfügen, damit die gesamte Protokollierung nach dem Start erfolgt.Normalerweise möchten Sie die Protokolle jedoch nicht löschen, da sie Ihr Ausgangspunkt für alle Fehlerbehebungsmaßnahmen sind.
quelle
find /var/log/* -exec cp /dev/null {} \;
?Für das, was Sie tun, ist es möglicherweise besser, eine zusätzliche Protokolldatei für Kernel-Nachrichten hinzuzufügen. Mit einigen Protokolldämonen können Sie Übereinstimmungen mit den zu schreibenden Datensätzen durchführen, sodass Sie nur die entsprechenden Datensätze in Ihrer Datei erhalten. Sie können die Dateien dann zwischen den Läufen drehen, löschen oder umbenennen. (Wenn Sie nicht neu starten, müssen Sie möglicherweise ein HUP-Signal an den Protokolldämon senden, damit dieser seine Dateien erneut öffnet.
Es gibt auch Tools, die nur neue Datensätze aus dem Protokoll extrahieren. Das
logtail
Dienstprogramm aus demlogcheck
Paket ist ein solches Dienstprogramm. Es kann mit einer alternativen Offsetdatei ausgeführt werden.Es gibt andere Tools, die die Protokolle auf Datensätze überwachen, die einem Muster entsprechen, und diese melden. Eine davon könnte für Sie gut funktionieren.
quelle
Dies scheint gut zu funktionieren (unter Ubuntu LTS 14.04), indem Sie Ihre Protokolle in ein sauberes Protokoll umwandeln und dann die älteren Protokolleinträge löschen. Es ähnelt der Methode cp / dev / null, aber ich denke, es ist sauberer. ymmv
quelle