Ich habe kürzlich festgestellt, dass tail -f <logfile>
die Aktualisierung des Bildschirms manchmal unterbrochen wird.
Ein Ctrl>- Cund ein Neustart tail
funktioniert jedoch einwandfrei. Und ich habe überprüft, ob die Protokolldatei nicht in der Mitte des Streams gedreht wird (was dazu führen kann, dass tail
sie den Verstand verliert).
Was würde das verursachen? Ich verwende RHEL 5.2 x64.
Antworten:
Versuchen Sie, Ihren Schwanzbefehl mit
strace
folgenden Zeichen zu versehen:Dann können Sie nur für verrückte rekursive Kicks die Strace-Ausgabe verfolgen (spielt keine Rolle, wenn das kaputt geht, weil es in eine Datei geht):
Meins sieht aus wie:
Das -t schaltet die Zeit ein und -T schaltet die in Anrufen verbrachte Zeit ein.
Drücken Sie 4 oder 5 Mal die Eingabetaste, um ein wenig vertikalen Raum zu schaffen, und warten Sie dann, bis das Tailing aufhört. Hoffentlich gibt es einige Hinweise in der Ausgabe.
quelle
Versuchen Sie es mit:
tail --follow=name <logfile>
Und sehen Sie, ob das besser funktioniert. Sie müssen sich keine Sorgen machen, dass es unter Ihnen herausgedreht wird.
Gibt es ein Muster dafür? Bestimmte Zeitdauer? Bestimmte Tageszeit?
quelle
tail
- es wird nur in regelmäßigen Abständen (irgendwann zwischen 2 und 20 Stunden) angehalten, um zu folgen. Ich wünschte, es gäbe mehr Muster: - \screen
Sitzung zum erweiterten Debuggen laufen zu lassen , und das ist besorgniserregendAngesichts der Tatsache, dass beide problematischen Protokolldateien von verschiedenen Komponenten derselben Anwendung geschrieben werden, frage ich mich, ob nicht ein Teil des Protokollierungscodes für diese Anwendung das Problem verursacht. Ich schlage zwei Tests vor, um eine bessere Vorstellung davon zu bekommen, was los ist:
Notieren Sie sich den Inode der logfile (
ls -i logfile
), bevor Sie den Schwanz starten. Wenn der Schwanz ausfällt, überprüfen Sie ihn erneut. Wenn sich der Inode geändert hat, schreibt der Logger die gesamte Protokolldatei neu, wodurch die Verbindung zum Tail unterbrochen wird.Beachten Sie die letzte Zeile, bevor der Schwanz nicht mehr funktioniert. Besuchen Sie dann die Datei und suchen Sie den ersten Protokolleintrag nach dieser Zeile. Tun Sie dies nach Möglichkeit 3-5 Mal. Wenn es ein Problem mit dem Programm gibt, das die Protokollierung durchführt, ist höchstwahrscheinlich der Teil des Programms verantwortlich, der den Protokolleintrag unmittelbar nach dem Auftreten von Tail Break geschrieben hat. Wenn dieser Protokolleintrag immer derselbe ist oder von derselben Programmkomponente stammt, verfügen Sie möglicherweise über genügend Daten, um einen Problembericht an den Anwendungsanbieter zu senden.
Viel Glück.
quelle
Das gleiche Problem hier haben.
Das Problem war, dass die Datei, die ich gerade beobachte, von einem anderen Computer gemountet wurde. Die Änderungsbenachrichtigung wurde nicht über das Mount weitergegeben.
Die Lösung bestand darin, den Schwanz auf der Originalmaschine zu verwenden.
quelle