Files
tty_logger/README.md
2025-09-12 10:12:35 +02:00

2.0 KiB

TTY Analyser

Dieses Projekt enthält zwei einfache Python-Skripte, um Terminal-Sitzungen aufzuzeichnen und live anzuzeigen.

Komponenten

  1. pty_monitor.py: Startet eine neue Shell-Sitzung und zeichnet alle Ein- und Ausgaben in einer Log-Datei auf.
  2. log_viewer.py: Zeigt den Inhalt einer Log-Datei an und aktualisiert die Ansicht automatisch, wenn neue Inhalte hinzukommen (ähnlich wie tail -f).

Anwendung

Die Anwendung ist in zwei Schritte aufgeteilt: das Aufzeichnen der Sitzung und das Anzeigen der Aufzeichnung.

1. Sitzung aufzeichnen

Um eine Terminal-Sitzung aufzuzeichnen, führen Sie pty_monitor.py aus.

python3 pty_monitor.py
  • Das Skript startet eine neue zsh-Shell.
  • Alle Befehle, die Sie eingeben, und deren Ausgaben werden in einer Log-Datei gespeichert.
  • Der Name der Log-Datei wird automatisch generiert, z.B. username-ttyX.log.
  • Um die Aufzeichnung zu beenden, geben Sie exit in der aufgezeichneten Shell ein.

2. Aufzeichnung ansehen

Öffnen Sie ein zweites Terminal, um die Log-Datei live zu verfolgen.

python3 log_viewer.py <name-der-log-datei>.log

Ersetzen Sie <name-der-log-datei>.log mit dem Dateinamen, der beim Start von pty_monitor.py angezeigt wurde (z.B. jonnybravo-tty7.log).

  • Das Skript zeigt den aktuellen Inhalt der Log-Datei an.
  • Alle neuen Eingaben aus der aufgezeichneten Sitzung erscheinen sofort im Viewer.
  • Sie können den Viewer jederzeit mit Strg+C beenden.

Details zu den Skripten

pty_monitor.py

Dieses Skript verwendet das pty-Modul von Python, um eine Pseudo-Terminal-Sitzung zu erstellen. Es agiert als Vermittler zwischen Ihrer Tastatur, der gestarteten Shell (/bin/zsh) und der Log-Datei. Steuerzeichen und Escape-Sequenzen werden aus den Ausgaben entfernt, um die Log-Dateien sauber und lesbar zu halten.

log_viewer.py

Ein einfaches "Follow"-Skript, das eine Datei öffnet und am Ende der Datei auf neue Zeilen wartet. Sobald eine neue Zeile in die Datei geschrieben wird, liest das Skript sie und gibt sie auf der Konsole aus.