Terminal-Sitzungen protokollieren mit „script“   Vor kurzem aktualisiert!


Wer kennt es nicht? Man führt ein komplexes Update durch oder konfiguriert einen Server über die Linux Kommandozeile, und plötzlich rauscht eine Fehlermeldung vorbei, die man im Eifer des Gefechts nicht kopiert hat. Genau hier hilft das kleine Tool /usr/bin/script.

Was macht script?

script erstellt eine Aufzeichnung deiner gesamten Terminal-Sitzung. Alles, was du tippst und alles, was der Server als Antwort ausgibt, wird in einer Textdatei gespeichert. Das ist besonders wertvoll für:

  • Fehlersuche: Dokumentation von Installations-Logs.
  • Berichterstattung: Einem Kollegen genau zeigen, was man gemacht hat.
  • Archivierung: Ein Protokoll von System-Updates (wie z. B. dist-upgrade) behalten.

Drei Schritte

  1. Die Aufnahme starten: Um mit der Aufzeichnung zu beginnen, gibt man einfach folgenden Befehl in ein Terminal ein: script upgrade-log.txt Hinweis: Wenn kein Dateiname angegeben wurde, wird die Datei standardmäßig unter dem Namen typescript gespeichert.
  2. Arbeiten wie gewohnt: Das Programm läuft nun im Hintergrund. Mann kann Updates, Skripte oder Befehle ganz normal ausführen. Alles wird in Echtzeit in die Datei upgrade-log.txt geschrieben.
  3. Die Aufnahme beenden: Sobald man fertig ist, beendest man die Aufzeichnung mit dem Befehl: exit Das Terminal meldet nun: Script done, file is upgrade-log.txt.

Man kann auch den Zeitstempel mitloggen

Wenn man später genau wissen will, wann welcher Befehl ausgeführt wurde, kannst man die Option -t (für Timing-Daten) verwenden. Das ist jedoch eher für die Wiedergabe gedacht. Für ein lesbares Log reicht oft der Standard-Aufruf.

Wichtig: script zeichnet auch Passwörter auf, wenn diese im Klartext eingegeben werden (was man ohnehin vermeiden sollte). –> Also darauf achten, wer Zugriff auf die Log-Datei hat!

Sitzungen mit scriptreplay abspielen

Ein statisches Log-File ist super zum Durchsuchen, aber manchmal möchte man genau sehen, in welchem Rhythmus Befehle eingegeben wurden oder wie schnell Fehlermeldungen über den Schirm laufen. Dafür gibt es das Tool scriptreplay.

1. Aufnahme mit Timing-Datei starten

Damit die Zeitabstände korrekt gespeichert werden, musst du beim Starten von script eine zusätzliche Datei für die Zeitstempel (Timing-File) angeben:

script -t=time.log upgrade-log.txt
  • time.log: Speichert die zeitliche Abfolge.
  • upgrade-log.txt: Speichert den eigentlichen Textinhalt.

2. Die Sitzung wiedergeben

Wenn du die Datei später jemandem vorführen oder selbst noch einmal „abspielen“ möchtest, nutzt du diesen Befehl:

scriptreplay -t time.log upgrade-log.txt

Das Terminal beginnt nun, die gesamte Sitzung in der Originalgeschwindigkeit abzuspielen. Man kann die Geschwindigkeit mit dem Parameter -s (z. B. -s 2 für doppelte Geschwindigkeit) anpassen, wenn der Fortschrittsbalken beim realen Upgrade zu langsam war.

Es ist ganz praktisch, bei kritischen Systemeingriffen wie einem dist-upgrade standardmäßig script mitlaufen zu lassen. Es kostet kaum Ressourcen, bietet aber im Ernstfall die entscheidenden Hinweise zur Fehlerbehebung.