Ich habe eine Webanwendung, die in einer Reihe von Protokolldateien Leistungsinformationen ausgibt. Eine Protokolldatei gibt Code-Ausführungszeiten und eine andere SQL-Zeitangaben aus. Ich habe keine Kontrolle über den Logger oder den Code, der die Logdateien erzeugt, aber ich möchte die Logs an einem Ort ausgeben.
Momentan mache ich so etwas
tail -f sqlLogs.log | grep sql-time
tail -f perflogs.log | grep exec-time
Dies gibt jedes Mal etwas an die Konsole aus, wenn ein SQL in der Anwendung ausgeführt wird. Ich muss den Code jedoch in zwei separaten SSH-Sitzungen ausführen. Allerdings möchte ich beide Dateien in der gleichen SSH-Sitzung tailen können. Ist das möglich?
Schauen Sie sich MultiTail an . Es ist dein Freund.
Sie können mehrere Anmeldeschwänze verwenden
http://www.vanheusden.com/multitail/
Unter Ubuntu 10.04:
sudo apt-get install multitail
quelle
Ja, mit dem
screen
Befehl können Sie zwei Bash-Sitzungen auf einem Terminal ausführen.screen
um loszulegen,Ctrl-a
dannS
(HINWEIS: Großbuchstabe S) ein, um den Bildschirm in zwei Teile zu teilen.Ctrl-a
DannTab
werden Sie zwischen den beiden Sitzungen bewegen.Ctrl-a
Dannc
wird eine Shell in dieser neuen Region gestartet.(Bitte lesen Sie die Antwort von Riccardo, bevor Sie diese verwenden. Sie ist viel einfacher. Ich lasse sie hier, da sie für Menschen mit ähnlichen, aber unterschiedlichen Problemen nützlich sein kann.)
quelle
Sie können mkfifo verwenden, um die Ausgabe auf eine Pipe zu multiplexen
erstelle eine FIFO-Pipe, füge n Dateien der Pipe hinzu und katze dann die Pipe
wenn fertig
quelle
tail fileN >> pipeName
.