Die Antwort steht im Protokoll
Bei einem Shop fällt um Mitternacht die Bezahlung aus. Niemand hat etwas angefasst. Als Erstes liest die Person aus der Technik das Ende einer Datei, in die das Zahlungsprogramm schreibt, was es getan hat. Dort steht, was schiefging, mit der Uhrzeit.
Am Ende dieser Lektion
Notiz
Ich kann ein Protokoll lesen und einen Prozess beenden, der sich falsch verhält.
Schlüsselwörter
- Protokoll (Log): eine Datei, in die ein Programm schreibt, was es getan hat.
- Pipe:
|, das die Antwort eines Befehls an den nächsten weitergibt. - Prozess: ein Programm, das gerade läuft.
- PID: die Nummer, die einen Prozess benennt.
- Signal: eine Nachricht an einen Prozess, zum Beispiel „Stopp“.
Zum Start: Was du schon weißt
Notiz
Antworte im Kopf. 1. Was macht >> mit einer Datei? 2. Was ist ein Pfad? 3. Welcher Befehl gibt eine ganze Datei aus? Du lernst gleich einen Befehl kennen, der nur das Ende einer Datei zeigt.
Bevor du anfängst
Notiz
Drücke in der Leiste oben in dieser Lektion auf Lab starten. Dieses Lab ist eine ganze Ubuntu-Maschine nur für dich, deshalb dauert der Start etwas länger als bei einem Container. Jede Schaltfläche Ausführen tippt ihren Befehl in das Terminal der Maschine, einen nach dem anderen in derselben Sitzung. Wenn einer sagt, dass die Maschine noch startet, warte ein paar Sekunden und drücke ihn noch einmal. Wo in der Lektion Tippe das ein steht, endet der Befehl nicht von selbst oder fragt dich etwas. Drücke dann in der Leiste auf Terminal öffnen (neuer Tab) und tippe ihn selbst ein.
Das Ende eines Protokolls lesen und es durchsuchen
Das Ende eines Protokolls ist der neueste Teil. tail -n 5 gibt die letzten fünf Zeilen aus. grep gibt nur die Zeilen aus, die bestimmte Wörter enthalten, und -c zählt sie stattdessen. Der letzte Befehl verbindet drei mit Pipes: das ganze Protokoll lesen, die Zeilen mit hello behalten, die drei neuesten zeigen.
tail -n 5 /var/log/test.logHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
grep 'hello' /var/log/test.logHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
grep -c ERROR /var/log/test.logHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
cat /var/log/test.log | grep 'hello' | tail -n 3Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Tippe das ein: ein Protokoll verfolgen, während es wächst
Tippe im Terminal tail -f /var/log/test.log. Neue Zeilen erscheinen, sobald sie geschrieben werden. Drücke Strg+C, um zu stoppen. Eine Schaltfläche „Ausführen“ kann nicht Strg+C drücken, deshalb tippst du diesen Befehl selbst. In den Notizen anderer siehst du auch tail -200f: Es zeigt zuerst die letzten 200 Zeilen und verfolgt dann weiter.
Prüfe dich
Tipp
Welcher Befehl zeigt nur das Ende einer Datei, und welcher behält nur die Zeilen mit einem bestimmten Wort? Antwort: tail und grep. Mit einer Pipe verbunden beantworten sie die meisten Fragen zu einem Protokoll.
Eine Datei und einen Befehl finden
find / -name 'test.log' durchsucht die ganze Maschine. Teile davon sind für dich gesperrt, deshalb wirft 2>/dev/null diese Fehlermeldungen weg. which ls sagt, wo ein Befehl liegt.
find / -name 'test.log' 2>/dev/nullHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
which lsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Einen Prozess finden
Ein laufendes Programm ist ein Prozess und hat eine Nummer, seine PID. ps -ef listet alle auf, und | grep worker behält die Zeilen mit diesem Wort. Es kommen zwei Zeilen zurück: der Worker und das grep, das du gerade ausgeführt hast. pgrep -f lab-worker gibt nur die Nummer aus.
ps -ef | grep workerHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
pgrep -f lab-workerHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Tippe das ein: ihn beenden
Nimm die Nummer aus der Antwort oben. Tippe im Terminal kill 1234 mit deiner Nummer und führe dann ps -ef | grep worker noch einmal aus: Der Worker ist weg. Suche jetzt den zweiten Prozess mit ps -ef | grep stubborn, tippe kill und seine Nummer und schau noch einmal nach. Er ist noch da, weil er eine höfliche Bitte ignoriert. Tippe kill -9 und seine Nummer, dann stoppt er. top zeigt die aktivsten Prozesse live; drücke q.
Ein häufiger Fehler
Warnung
Viele denken, kill -9 sei einfach das stärkere kill, und benutzen es zuerst. kill bittet ein Programm, aufzuhören, damit es seine Arbeit speichern und aufräumen kann. kill -9 nimmt es sofort weg, ohne Aufräumen, und kann halb geschriebene Dateien hinterlassen. Benutze kill, warte ein paar Sekunden und nimm -9 nur, wenn das Programm immer noch nicht aufhört.
Abschlusscheck
Tipp
Antworte, ohne zurückzuschauen. 1. Wie stoppst du tail -f? 2. Was macht 2>/dev/null? 3. Was probierst du zuerst, kill oder kill -9? Antworten: Strg+C; es wirft die Fehlermeldungen weg; kill.
Für Lehrkräfte
Tipp
Diese Lektion ist ein kleines Beispiel für eine Lektion, die in einem Lab bearbeitet wird: Die Schritte und die Schaltflächen „Ausführen“ sind die Lektion, und das Lab ist die eigene Kopie jeder lernenden Person. Diese Lektion läuft in einem VM-Lab: Jede lernende Person hat eine eigene Ubuntu-Maschine, und „Ausführen“ tippt in deren Terminal und zeigt, was ausgegeben wurde. Lernziele: 1. tail und grep lesen ein Protokoll. 2. find und which finden Dinge. 3. ps findet einen Prozess und kill beendet ihn. Häufiger Fehler: kill -9 zuerst benutzen. Ausstattung: das Lab und ein Browser. Tipp: Starten Sie tail -f auf dem Bildschirm der Lehrkraft und lassen Sie die Klasse sagen, wann die nächste Zeile kommt. Das Lab hat keine Prüfung und bewertet nichts. Legen Sie eine eigene Abgabe fest, wenn Sie eine möchten. Kopieren Sie die Lektion in Ihr eigenes Modul und ändern Sie sie, oder bauen Sie mit dem Menü Lab im Lektionseditor eine neue.