So verwenden Sie den tail-Befehl unter Linux

Inhalt

Ein Terminalfenster mit einer Bash-Eingabeaufforderung auf einem Linux-Laptop im Ubuntu-Stil.

El Linux tail Der Befehl zeigt Daten vom Ende einer Datei an. Es kann sogar Aktualisierungen anzeigen, die einer Datei in Echtzeit hinzugefügt wurden. Wir zeigen Ihnen, wie Sie es verwenden.

¿Systemd Kill Tail?

das tail Der Befehl zeigt Daten vom Ende einer Datei an. Im Allgemeinen, neue Daten werden am Ende einer Datei hinzugefügt, so dass tail Der Befehl ist eine schnelle und einfache Möglichkeit, die neuesten Ergänzungen zu einer Datei anzuzeigen. Sie können auch eine Datei überwachen und jeden neuen Texteintrag in dieser Datei anzeigen, wenn er auftritt.. Dies macht es zu einem großartigen Tool zum Überwachen von Protokolldateien..

Viele moderne Linux-Distributionen haben die systemd System- und Servicemanager. Dies ist die erste ausgeführte Prozedur, verfügen über Prozess ID 1und ist die Mutter aller anderen Prozesse. Diese Rolle war früher von Ältesten verwaltet init System.

Zusammen mit dieser Änderung, kam ein neues Format für Systemprotokolldateien. Nicht mehr im Klartext erstellt, An systemd werden im Binärformat aufgezeichnet. Zum diese Log-Dateien lesen, verwenden müssen das journactl Dienstprogramm. das tail Der Befehl funktioniert mit Nur-Text-Formaten. Liest keine Binärdateien. Dann, Dies bedeutet, dass tail Ist der Befehl eine Lösung auf der Suche nach einem Hindernis?? Hast du noch etwas anzubieten?

Es steckt mehr dahinter tail Befehl zum Anzeigen von Echtzeit-Updates. Und in Wirklichkeit, es gibt noch viele Log-Dateien, die nicht vom System generiert werden und immer noch als reine Textdateien erstellt werden. Als Beispiel, Log-Dateien generiert von Anwendungen Sie haben ihr Format nicht geändert.

Klebstoff verwenden

Übergeben Sie den Namen einer Datei an tail und es zeigt Ihnen die letzten zehn Zeilen dieser Datei. Die von uns verwendeten Beispieldateien enthalten geordnete Wortlisten. Jede Zeile ist nummeriert, Es sollte also einfach sein, den Beispielen zu folgen und zu sehen, welche Auswirkungen die verschiedenen Optionen haben.

Schwanzwortliste.txt

Um eine andere Anzahl von Zeilen anzuzeigen, benutze el -n (anzahl der Zeilen) Möglichkeit:

Schwanz -n 15 Wortliste.txt

Genau genommen, Sie können auf das "-n" verzichten und einen Bindestrich "-" und die Zahl verwenden. Stellen Sie sicher, dass es keine Lücken zwischen ihnen gibt. Technisch, Dies ist eine veraltete Befehlsform, aber es ist noch in der Handbuchseiteund es funktioniert immer noch.

Schwanz -12 Wortliste.txt

Tail mit vielen Dateien verwenden

Du kannst haben tail mit vielen Dateien gleichzeitig arbeiten. Übergeben Sie einfach die Dateinamen in der Befehlszeile:

Schwanz -n 4 Liste-1.txt Liste-2.txt Liste-3.txt

Für jede Datei wird eine kleine Kopfzeile angezeigt, damit Sie wissen, zu welcher Datei die Zeilen gehören.

Anzeigen von Zeilen am Anfang einer Datei

das + (zähle von Anfang an) Modifikator tut tail Zeilen vom Anfang einer Datei anzeigen, ab einer bestimmten Zeilennummer. Wenn Ihre Datei sehr lang ist und Sie eine Zeile am Anfang der Datei auswählen, Sie erhalten viele Ergebnisse an das Terminalfenster gesendet. Wenn das der Fall ist, es ist sinnvoll, die Ausgabe von zu kanalisieren tail innerhalb less.

Schwanz +440 list-1.txt

Du kannst kontrolliert durch den Text blättern.

Weil dort sind 20,445 Zeilen in dieser Datei, Dieser Befehl ähnelt der Verwendung der “-6”:

Schwanz +20440 list-1.txt

Verwenden von angehängten Bytes

Sie können sagen tail Offsets in Bytes anstelle von Zeilen verwenden -c (Bytes) Möglichkeit. Dies kann nützlich sein, wenn Sie eine Textdatei haben, die in Datensätzen in normaler Größe formatiert ist. Beachten Sie, dass ein Zeilenumbruchzeichen als ein Byte zählt. Dieser Befehl zeigt die neuesten 93 Dateibytes:

Schwanz -c 93 list-2.txt

Sie können das kombinieren -c (Bytes) Option mit der + (zählen ab Dateianfang) und geben Sie einen Offset in Bytes an, gezählt vom Anfang der Datei:

Schwanz -c +351053 list-e.txt

Rohr im Schwanz

Vorher, Wir kanalisieren die Ausgabe von tail innerhalb less . Wir können auch die Ausgabe anderer Befehle an tail.

So identifizieren Sie die fünf Dateien oder Ordner mit den ältesten Änderungszeiten, Verwenden Sie die -t (nach Änderungszeit sortieren) Option mit ls und leiten Sie die Ausgabe an tail.

ls -tl | Schwanz -5

das head Befehl listet Textzeilen am Anfang einer Datei auf. Wir können das kombinieren mit tail einen Abschnitt der Datei extrahieren. Hier, wir benutzen die head Befehl zum Extrahieren des ersten 200 Zeilen einer Datei. Dies wird kanalisiert an tail, die die letzten zehn Zeilen extrahiert. Das gibt uns die Zeilen 191 bis zur linie 200. Mit anderen Worten, die letzten zehn Zeilen des ersten 200 Linien:

Kopf -n 200 list-1.txt | Schwanz -10

Dieser Befehl listet die fünf speicherintensivsten Prozesse auf.

ps an | sortieren -nk +4 | Schwanz -5

Lass uns das analysieren.

das ps Befehl zeigt Informationen über laufende Prozesse an. Die verwendeten Alternativen sind:

  • ein: Alle Prozesse auflisten, nicht nur für den aktuellen Benutzer.
  • Ihre: Zeigt eine anwenderorientierte Ausgabe an.
  • x: Alle Prozesse auflisten, einschließlich derer, die nicht innerhalb eines TTYs laufen.

das sort Befehl den Ausgang bestellen von ps . Die Alternativen, die wir mit verwenden sort ist es so:

  • Norden: Numerisch sortieren.
  • k +4: Reihenfolge in der vierten Spalte.

das tail -5 Der Befehl zeigt die letzten fünf Prozesse der geordneten Ausgabe an. Dies sind die fünf Prozesse, die den meisten Speicher verbrauchen.

Verwenden von Tail zum Verfolgen von Dateien in Echtzeit

Verfolgen Sie neue Texteinträge, die in einer Datei ankommen, generell eine Logdatei, es ist einfach mit tail. Übergeben Sie den Dateinamen in der Befehlszeile und verwenden Sie die -f (fortsetzen) Möglichkeit.

Schwanz -f geek-1.log

Da jeder neue Protokolleintrag zur Protokolldatei hinzugefügt wird, tail aktualisiert seine Anzeige im Terminalfenster.

Sie können die Ausgabe so verfeinern, dass sie nur Zeilen von besonderer Relevanz oder Interesse enthält. Hier, wir benutzen grep zum nur Zeilen anzeigen, die enthalten das Wort “Durchschnitt”:

Schwanz -f geek-1.log | grep Durchschnitt

So verfolgen Sie Änderungen in zwei oder mehr Dateien, Dateinamen in der Befehlszeile übergeben:

Schwanz -f -n 5 geek-1.log geek-2.log

Jeder Eintrag ist mit einer Kopfzeile versehen, die anzeigt, aus welcher Datei der Text stammt.

Ausgabe von Schwanz -f -n 5 geek-1.log geek-2.log

Der Bildschirm wird jedes Mal aktualisiert, wenn ein neuer Eintrag in einer gefolgten Datei eintrifft. So legen Sie den Aktualisierungszeitraum fest, Verwenden Sie die -s (Ruhezeit). Das sagt tail warte einige Sekunden, fünf in diesem Beispiel, zwischen Dateiprüfungen.

Schwanz -f -s 5 geek-1.log

Es ist wahr, dass man es nicht anhand eines Screenshots erkennen kann, aber die Updates einordnen passieren alle zwei Sekunden. Neue Dateieinträge werden erstellt im Terminalfenster angezeigt einmal alle fünf Sekunden.

Ausgabe von tail -f -s 5 geek-1.log

Wenn Sie Textergänzungen zu mehr als einer Datei verfolgen, Sie können die Kopfzeilen unterdrücken, die angeben, aus welcher Protokolldatei der Text stammt. Verwenden Sie die -q Möglichkeit (Leise) um dies zu tun:

tail -f -q geek-1.log geek-2.log

Die Ausgabe der Dateien wird in einer perfekten Textkombination angezeigt. Es gibt keinen Hinweis, aus welcher Protokolldatei jeder Eintrag stammt.

der Schwanz hat noch Wert

Auch wenn der Zugriff auf die Systemprotokolldateien es jetzt ermöglicht journalctl, tail hat noch viel zu bieten. Dies gilt insbesondere in Verbindung mit anderen Befehlen, Betreten oder Verlassen tail.

systemd hätte die Landschaft verändern können, Aber es gibt immer noch einen Platz für traditionelle Dienstprogramme, die der Unix-Philosophie entsprechen, eine Sache zu tun und es richtig zu machen.

setTimeout(Funktion(){
!Funktion(F,B,e,v,n,T,S)
{wenn(f.fbq)Rückkehr;n=f.fbq=Funktion(){n.callMethode?
n.callMethod.apply(n,Argumente):n.queue.push(Argumente)};
wenn(!f._fbq)f._fbq = n;n.drücken=n;n.geladen=!0;n.version=’2.0′;
n.Warteschlange=[];t=b.Element erstellen(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(T,S) } (window, dokumentieren,'Skript',
„https://connect.facebook.net/en_US/fbevents.js’);
fbq('drin', ‘335401813750447’);
fbq('Spur', 'Seitenansicht');
},3000);

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.