Der Befehl tail gibt die letzten Zeilen (standardmäßig 10 Zeilen) einer oder mehrerer Dateien aus. Besonders nützlich ist die Fähigkeit, Dateien in Echtzeit zu überwachen – ideal für Log-Analyse.
Syntax
tail [OPTION]... [DATEI]...
OPTION- Optionen, die das Verhalten steuern.DATEI- Eine oder mehrere Eingabedateien. Ohne Angabe liesttailvon der Standardeingabe.
Grundlegende Verwendung
Ohne Optionen zeigt tail die letzten 10 Zeilen einer Datei:
tail /var/log/syslog
Eine bestimmte Anzahl von Zeilen anzeigen
Mit der Option -n (--lines) legst du fest, wie viele Zeilen ausgegeben werden:
tail -n 50 /var/log/syslog
Als Kurzform funktioniert auch -50 ohne den Buchstaben n:
tail -50 /var/log/syslog
Eine bestimmte Anzahl von Bytes anzeigen
Die Option -c (--bytes) gibt statt Zeilen eine bestimmte Anzahl von Bytes aus:
tail -c 500 /var/log/syslog
Multiplikator-Suffixe vereinfachen die Angabe größerer Werte: b (512 Bytes), k oder K (1024 Bytes), M (1048576 Bytes).
Die letzten 2 Kilobytes einer Datei:
tail -c 2k /var/log/syslog
Dateien in Echtzeit überwachen
Die Option -f (--follow) hält tail aktiv und zeigt neue Zeilen an, sobald sie zur Datei hinzugefügt werden:
tail -f /var/log/nginx/error.log
Das ist die häufigste Anwendung von tail – das Überwachen von Logdateien während der Fehlersuche. Beende die Überwachung mit Strg+C.
Rotierende Logdateien überwachen
Logrotation ersetzt die aktuelle Logdatei durch eine neue. Mit -f würde tail dann ins Leere laufen. Die Option -F (Großbuchstabe) erkennt dies und öffnet die neue Datei automatisch:
tail -F /var/log/apache2/access.log
Verwende -F anstelle von -f, wenn du Logdateien über längere Zeit beobachtest.
Mehrere Dateien anzeigen
tail verarbeitet mehrere Dateien und zeigt die letzten Zeilen jeder Datei mit einem Header:
tail /var/log/syslog /var/log/auth.log
Optionen wie -n gelten für alle angegebenen Dateien:
tail -n 20 /var/log/syslog /var/log/auth.log
Kombination mit anderen Befehlen
Über Pipes lässt sich tail mit anderen Befehlen verbinden. Das folgende Beispiel überwacht ein Apache-Zugriffslog und filtert nach einer bestimmten IP-Adresse:
tail -f /var/log/apache2/access.log | grep 192.168.1.100
Dieser Befehl zeigt die fünf Prozesse mit der höchsten CPU-Auslastung:
ps aux | sort -nk 3 | tail -5
Zusammenfassung
Der Befehl tail zeigt die letzten Zeilen einer Datei und ist das Gegenstück zu head, das die ersten Zeilen ausgibt. Die Option -f macht ihn zum unverzichtbaren Werkzeug für die Überwachung von Logdateien.