Log-Dateien in „Echtzeit“ anzeigen – Linux Konsole

Hin und wieder möchte man Log-Dateien unter Linux beobachten weil etwas nicht richtig funktioniert, oft greift man hier auf tail zurück um die letzten Zeilen anzuschauen. Dann startet man eine Aktion die den Fehler auslöst, führt wieder tail aus und kommt früher oder später durcheinander weil der ganze Zeilenspeicher der Konsole vollläuft mit Dingen die alle gleich aussehen.

Neulich bin ich dann über das Tool watch gestolpert. Dieses führt einen Befehl ständig wieder aus, und ermöglicht zusammen mit tail so das kontinuierliche Überwachen einer Log-Datei.

Das ganze kann dann beispielsweise so aussehen:

1
watch 'tail -n 20 /var/log/mail.log'

Dann wird alle 2 Sekunden die Ausgabe von tail angezeigt. Zu beachten ist die Verwendung von ‚ ‚ um den eigentlichen Befehl, es ist nicht zwingend notwendig, aber wenn man beispielsweise einen Befehl durch eine Pipe in grep schickt und die Ausgabe von grep sehen will, so müssen die Anführungszeichen verwendet werden, da sonst die Ausgabe von watch in grep landet.

Kommandozeilenparameter für watch:

  • -n Zahl Intervall in dem der Befehl ausgeführt wird in Sekunden (3600s=1 Stunde)
  • -d[=cumulative] Unterschiede anzeigen [Unterschiede werden für immer angezeigt]
  • -b ein Warnbiep wird abgespielt wenn der Befehl mit einem Fehler beendet wurde (Exitcode ungleich 0)

Alternativ kann auch die Funktionalität von tail direkt benutzt werden, wie Thomas richtig in den Kommentaren anmerkt:

1
tail -n 20 -F -s 2 /var/log/mail.log

Kommandozeilenparameter für tail:

  • -n Zahl Anzahl der Zeilen die am Anfang ausgegeben werden (vom Ende der Datei)
  • -F Follow – bewirkt dass dem Ende der Datei gefolgt wird, sobald also etwas angehängt wird wird es ausgegeben
  • -s Zahl Es wird zwischen den einzelnen Ausgaben in etwa Zahl Sekunden gewartet

Der Unterschied bei dieser Variante ist, dass die Ausgabe immer weiter erfolgt, das Terminal also immer weiter vollgeschrieben wird. Das kann erwünscht sein oder auch nicht.

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (5 Bewertungen, Durchschnitt: 4,60 von 5)
Loading...
Sonntag, 30. Januar 2011 Computer, Linux, Software

7 Comments zu Log-Dateien in „Echtzeit“ anzeigen – Linux Konsole

  • Thomas sagt:

    Solange die Logdatei am Ende anwächst (was die meisten Logdateien tun), dann genügt doch ein

    1
    tail -F

    , oder? Mit dem zusätzlichen Parameter -s kann auch noch geschlafen werden, falls das wichtig sein sollte.

  • Olav sagt:

    Moin

    watch in Kombination ist echt praktisch, z.B. aauch um bestimmte Daten aus logfiles in Dateien umzulenken, was bei mir mot tail -f nicht funktioniert hat. 🙂

  • Rauschi sagt:

    Hallo, ich hoffe ihr könnt mir helfen.
    ich lasse mir verschiedene Logs anzeigen, diese werden dann auch gespeichert.
    Das passiert mitdem alias Logs, dieser beinhaltet :
    tail-f /date/…/…log
    Das klappt auch gut.
    Nun möchte ich aber, dass er mir immer wenn das Wort „err-disable“ erscheint, dieses Farbig darstellt.
    Ich dachte mit tail-f /date/…/…log | grep –colour „err-disable“ könnte das klappen. funzt aber nicht, da er mir nun nichts mehr anzeigt. EVTL würde er mir err-disable anzeigen, kommt aber nicht so oft vor.

  • Kommentar abgeben

     
    profile for Arsenal on Stack Exchange, a network of free, community-driven Q&A sites

    PayPal-Spende



    • Hosted by netcup.de

    Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

    Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

    Schließen