Anzeige einer "scrollenden" Protokolldatei

28

Über die Befehlszeile habe ich eine Protokolldatei, die ich verfolgen möchte.

Ich möchte im Grunde ein tail, das aktualisiert wird, wenn das Protokoll aktualisiert wird, sodass der Text nach oben scrollen kann, wenn neue Zeilen an die Protokolldatei angehängt werden.

Gibt es irgendetwas, das das macht, ohne Code schreiben zu müssen?

WernerCD
quelle

Antworten:

35

tailhat die -fOption:

Von der manSeite:

-f, --follow [= {name | descriptor}] gibt angehängte Daten aus, wenn die Datei wächst; -f, --follow und --follow = descriptor sind äquivalent

Wenn Sie also Folgendes eingeben:

tail -f [path_and_name_of_logfile] - Sie sehen die Ausgabe im Terminal, wenn die Protokolldatei selbst angehängt wird.

NB [path_and_name_of_logfile]ist der Parameter, um ein Beispiel zu geben:

tail -f /var/log/messages

Wenn Sie mit der -n [number_of_lines]Option kombinieren , können Sie die Ausgabe beispielsweise von der letzten [Zeilenanzahl] in der Datei starten

tail -n 10 -f /var/log/Xorg.0.log

Bildbeschreibung hier eingeben


Einige Programme ändern regelmäßig ihre Protokolldatei, verschieben die alte Datei in einen neuen Namen (z. B. log.0) und beginnen von vorne.

NB logrotate führt dies aus, um Dateien für andere Programme zu protokollieren, die dies nicht selbst tun.

tail -f folgt nach dem Umbenennen weiterhin der alten Datei.

tail -F folgt der Datei nach Namen, wechselt also zur neuen Datei.

fossfreedom
quelle
Beide Antworten stimmen genau ... ich wusste nicht, dass Tail diese Option hatte. Sie erhalten den Scheck für die zusätzlichen Informationen.
WernerCD
Abgesehen davon gibt es auch ein paar tolle Skripte, mit denen Sie Ihr Protokoll einfärben können. Ein Beispiel, das mir in den Sinn kommt, ist colorize.pl, und Sie erreichen dies, indem Sie es durch das colorize-Skript leiten. zB: tail -f / var / log / messages | /home/me/colorize.pl
lazyPower
@lazyPower Schön auch. Ich muss damit basteln, obwohl ich nicht denke, dass es in meiner gegenwärtigen Situation super nützlich sein wird.
WernerCD
18

Während tailsicherlich die übliche Art und Weise, dies zu tun, ist zu beachten, dass lessdie gleiche Funktion hat und ist manchmal sehr nützlich.

Wenn Sie eine Datei mit geöffnet haben less, können Sie Shift+ drücken F, um sie der Datei folgen zu lassen (dh, sie zeigt wie gewohnt neue Zeilen an tail -f). Sie können diesen Modus mit Ctrl+ verlassenC

Sie können auch lessmit der +FOption beginnen. In diesem Fall wird sie in diesem Modus gestartet . Im Allgemeinen +kann verwendet werden, um "Tastaturbefehle" zu geben, lessdie beim Start ausgeführt werden.

Unter Verwendung lessdafür hat den Vorteil , dass man leicht die Datei oder sehen Sie andere Bereiche bei Bedarf suchen. Ich habe das zum Beispiel häufig mit Protokolldateien gemacht.

Joachim Sauer
quelle
Noch nie von "folgen" gehört (mehr, weniger, Schwanz, Katze). Gut zu wissen.
WernerCD
1
Einverstanden. Ich bevorzuge viel weniger. Strg-C stoppt das Scrollen, wenn Sie etwas Interessantes entdecken. Dann b, um zurück oder f vorwärts zu scrollen und / oder? vorwärts oder rückwärts suchen. Mit g gelangen Sie zum Anfang der Datei und mit G zum Ende. Alles, was du brauchst.
Martin Dow
6

Tut

tail -f something.log

Tun Sie, was Sie wollen?

Florian Diesch
quelle
4

tail Es gibt zwei Implementierungen, die folgen und Daten ausgeben, die an eine Datei angehängt werden

  • Folgen Sie dem Dateideskriptor
  • folgen Sie einer Datei mit einem bestimmten Namen

Mit dem Parameter -f, --followund --follow=descriptor, tailfolgt den Dateideskriptor. Mit dieser Methode kann die Datei über eine Umbenennung hinweg verfolgt werden, die Verfolgung wird jedoch angehalten, wenn die Datei gedreht wird (eine neue Datei wird mit einem anderen Dateideskriptor erstellt).

Wenn Sie Dateien verfolgen, die gedreht werden, verwenden Sie entweder --follow=nameoder einen -FParameter, der gleich ist --follow=name --retry. Auf diese Weise tailwird die Datei in regelmäßigen Abständen erneut geöffnet, um die mögliche Drehung zu überwinden.

Jawa
quelle
1

Ich denke, ccze ist das richtige Werkzeug für Sie.

Es macht die gleiche Sache des Kolorierens. Sie können sehen, wie das Protokoll nach unten gescrollt wird, aber es ist einfacher zu lesen, da die Zeilen farbig gedruckt werden (Fehler in Rot usw.). Sie können es schnell mit so etwas versuchen:

tail -f /var/log/syslog | ccze
Gelma
quelle