So folgen Sie mehreren dynamisch generierten Protokolldateien in einer kombinierten Ansicht

464
Ophir Yoktan

Ich habe ein Verzeichnis mit Protokolldateien, wobei von Zeit zu Zeit neue Dateien hinzugefügt werden. Ich möchte sie in einer kombinierten Ansicht "tailf" (siehe alle Zeilen aller zusammengeführten Dateien).

Ich habe gesehen, dass lnav mehrmals dafür empfohlen wurde, und basierend auf der Funktionsbeschreibung sollte es diese Optionen unterstützen - aber die Dokumentation ist nicht klar genug.

Insbesondere kann ich beim Ausführen von lnav zum Verfolgen eines Verzeichnisses die Protokolldateien mit den Tasten F \ F wechseln, ohne eine kombinierte Ansicht zu erhalten

1

1 Antwort auf die Frage

0
Gohu

In der Tat sehe ich keine gute Lösung für Ihre Verwendung lnav. Das Beste, was ich mir vorstellen kann, ist die Verwendung tail -faller Protokolldateien:

tail -f file_1.log ... file_n.log 

Eine andere Lösung, die dies verwendet logtail, hat einige Nachteile, behandelt jedoch den Fall, dass neue Protokolldateien von Zeit zu Zeit hinzugefügt werden:

#!/bin/bash  # Quietly initialize logtail offset files for logfile in *log do logtail $logfile done > /dev/null   while : do # wait a second for new logs sleep 1 for logfile in *log do  # output new logs since last logtail run, prepend with log filename logtail $logfile | sed "s/^/$logfile: /" done done