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
- Die Aufnahme starten: Um mit der Aufzeichnung zu beginnen, gibt man einfach folgenden Befehl in ein Terminal ein:
script upgrade-log.txtHinweis: Wenn kein Dateiname angegeben wurde, wird die Datei standardmäßig unter dem Namentypescriptgespeichert. - 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.txtgeschrieben. - Die Aufnahme beenden: Sobald man fertig ist, beendest man die Aufzeichnung mit dem Befehl:
exitDas 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:
scriptzeichnet 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.