Tail mehrere Protokolldateien

Ich habe eine Anwendung, die bei jeder Ausführung neue Protokolldateien generiert. Sie gehen alle in einen Ordner, mit Dateinamen wie diesem, und das nächste Protokoll wird nicht gestartet, bis das aktuelle fertig ist.

Log-20140122102407.txt
Log-20140122102739.txt
Log-20140122103640.txt
Log-20140122162121.txt
Log-20140122163145.txt

Ich möchte den aktuellen Fortschritt in einem Terminalfenster wie überwachen, tail -faber das funktioniert nicht mit mehreren Dateien. Ich habe von Multitail gehört, weiß aber nicht, wie man es benutzt, und ich möchte nicht, dass mein Terminalfenster in mehrere Abschnitte aufgeteilt wird.

Antworten (1)

Schwanz

tailkann mehrere Dateien tailen . Donovan Brays Artikel erklärt mehr, tail: kann mehrere Dateien gleichzeitig tailen, wer hätte das gedacht? und andere Schwanztricks.

Um mehrere Dateien zu verfolgen, übergeben Sie ein Dateimuster:

tail -f Log-*

mehrschwänzig

Sie können Multitail bitten , die Ausgabe mehrerer Dateien zu kombinieren. Die Beispielseite enthält nützliche Ansätze und Tricks.

Dieser Befehl kombiniert und fügt zwei Protokolle hinzu:

multitail /var/log/apache/access.log -I /var/log/apache/error.log

Wenn Sie Protokolle in einem Ordner verfolgen müssen, einschließlich der aktiv erstellten, verwenden Sie das -qFlag:

multitail -q 'test*'

Dadurch werden alle Dateien, die dem Muster entsprechen, mit einem Tail versehen test*, einschließlich derer, die nach der Ausgabe des Befehls angezeigt werden. Danke an @folkert-van-heusden für diesen Vorschlag und die Codekorrektur.

Wenn Sie Homebrew installiert haben, können Sie es multitailmit dem Befehl Terminal.app installieren:

brew install multitail

Siehe auch:

Soweit ich das beurteilen kann, funktioniert keine dieser Lösungen, da zukünftige Protokolldateien, die nach Eingabe des Befehls erstellt werden, nicht erkannt werden.
Mir ist kein Tool bekannt, das dies tut. Wenn Ihr Befehl einen Platzhalter * enthält, können Sie „Befehl +“ drücken. Um tail zu unterbrechen, drücken Sie nach oben und drücken Sie schließlich die Eingabetaste, um die Protokollierung mit den neuesten Dateien fortzusetzen.
elliott: hast du -q und -Q überprüft? vielleicht nützen sie?
normalerweise sollte multitail -Q in diesem Fall funktionieren, aber ich habe bemerkt, dass es kaputt ist. arbeiten daran!
Ok, ich habe es behoben: -q/-Q sollte jetzt funktionieren (in Multitail v6.1). Getestet durch: multitail -q 'test*' und dann in einem anderen Terminalfenster: sleep 3 ; echo 1 > test1 ; schlafen 3 ; echo 2 > test2 ; schlafen 3 ; echo 3 > test3 ; schlafen 3 ; usw.