Ich habe versucht, zwei Dateien mit der folgenden Option zu bearbeiten:
tail -0f file1.log -0f file2.log
Unter Linux wird der Fehler "tail: kann jeweils nur eine Datei verarbeiten" angezeigt.
In AIX sehe ich den Fehler als "Ungültige Optionen".
Das funktioniert gut, wenn ich benutze:
tail -f file1 -f file 2
unter Linux, aber nicht unter AIX.
Ich möchte in der Lage sein, mehrere Dateien mit -0f
oder -f
unter AIX / Linux zu verwalten
multitail
wird in keinem dieser Betriebssysteme erkannt.
screen
, zwei verschiedene Sitzungen zu erstellen? Sie sollten in der Lage sein, Schwanz auf beiden Bildschirmen zu verwenden? Auchtmux
kann die Arbeit machen und wenn Sie es installiert haben.Antworten:
Wie wäre es mit:
Oder stellen Sie jeder Zeile den Namen der Datei voran:
Um alle Dateien zu verfolgen, deren Name mit einem Muster übereinstimmt, können Sie das Skript
tail -f
(das jede Sekunde kontinuierlich aus der Datei liest)zsh
wie folgt implementieren :Um dann beispielsweise alle Textdateien im aktuellen Verzeichnis rekursiv zu verfolgen:
quelle
sed
Weg dem&
Weg vorzuziehen ?tail
Mehrere Dateien werden um die GNU-Tail-Version erweitert. Unter AIX haben Sie kein GNU-Tail, also können Sie es nicht tun. Sie könnenmultitail
stattdessen verwenden.Sie können Multitail sowohl unter Linux als auch unter AIX installieren .
Unter AIX können Sie das Paket hier herunterladen .
multitail
Ist unter Linux häufig in repo, sodass Sie es einfach mit dem Distributionspaket-Manager installieren können:apt-get install multitail
yum install multitail
quelle
multitail -i path/to/file1 -i path/to/file2
Folgendes funktioniert gut, um Dinge auf Standardausgabe auszugeben
Ich wollte
pipe
die Ausgabe auf einen anderen Prozess umstellen. In obigem Fall&
wurde das Teil gemacht, bevor es im Hintergrund lief und nur der zweite Teilpiped
zu verarbeiten waralso habe ich benutzt
@Stéphane Deine Antwort ist perfekt, aber ich erwähne nur meinen Anwendungsfall, der eine kleine Wendung hat.
quelle
tail -f file1 file2
es unter AIX nicht funktioniert, wenn tail nur einen Dateinamen akzeptiert. Sie können tun(tail -f file1 & tail -f file2) | process
, um die Standardausgabe von beidentail
s an die Pipe weiterzuleitenprocess
.Unter OSX und Linux mit
funktioniert super bei mir Eine andere nette Sache ist, dass es die folgende Ausgabe hat:
um zu erkennen, welche Ausgabe aus welchem Protokoll stammt.
quelle
q
, um die Header zu unterdrückenIch werde ein Code-Snippet zur Verfügung stellen
tmux
, das Ihnen zwei verschiedene Fenster bietet, mit denen Sie beide Dateien gleichzeitig bearbeiten können:UPDATE: Mit
screen
können Sie auch mehrere Sitzungen verbinden / trennen, sodass Sie auchtail
mehrere Male ausgeführt werden können. Ich kann dies vorschlagen:screen -s Tail_Server1.log
Als nächstes möchten Sie sich
CTRL+A+D
zurückziehen, ohne die Sitzungen zu beenden, und dann weiter:Beides wird zwei Mal separat ausgeführt
screens
, ich verweise darauf,screen --help
damit Sie es so einstellen können, wie Sie möchten, dass beide Bildschirme auf Ihrem Bildschirm funktionierenterminal
.quelle
Das Folgende funktioniert für mich unter SunOS 5.10.
Beide Schwänze laufen im Hintergrund. Die Änderungen an Dateien werden auf stdout geworfen. Darüber hinaus können Sie jeden Befehl zwischendurch ausführen, indem Sie die Eingabetaste drücken.
quelle
Verwenden Sie den folgenden Oneliner:
while true; do cat /path/to/numerous/folders/and/files/*/*.txt | grep "some filter" | tail -n 10; sleep 1; done
Alle 1 Sekunde druckt das Skript 10 letzte Zeilen des gefilterten Streams.
Drücken Sie, um die Schleife zu unterbrechen CtrlC.
quelle