Unterschiede zwischen Screenlog und Hardcopy auf dem GNU-Bildschirm

8

Einführung

Ich bin neu mit GNU screen , und ich benutze es hauptsächlich, weil ich nicht meine Arbeit verlieren will, wenn meine SSH-Verbindung unerwartet schließt, und auch, weil ich eine Protokolldatei jeder ausgegebenen Ausgabe behalten möchte mein Terminal (zumindest einige der letzten Tracks)

Bei SSH-Sachen denke ich, dass Ctrl + a d ablöst und screen -r oder screen -r session_name wieder an einige anfügt Sitzung lösen alle meine Probleme, jetzt versuche ich Logging zu verstehen.

Ich fand screenlog und hardcopy auf diesem Link , der im Grunde sagt:

  

Hardcopy Strg + a h Schreibt den aktuellen Anzeigeinhalt in die Datei hardcopy.n im Standardverzeichnis des Fensters, wobei n die Nummer des aktuellen Fensters ist. Dies hängt die Datei an oder überschreibt sie, wenn sie existiert, wie durch den Befehl hardcopy_append festgelegt.

     

log Strg + a H Beginnt / beendet die Protokollierung des aktuellen Fensters in die Datei screenlog.n im Standardverzeichnis des Fensters, wobei n die Nummer des aktuellen Fensters ist. Wenn kein Parameter angegeben ist, wird der Protokollierungsstatus umgeschaltet. Das Sitzungsprotokoll wird an den vorherigen Inhalt der Datei angehängt, wenn es bereits vorhanden ist. Der aktuelle Inhalt und der Inhalt des Scrollback-Verlaufs sind nicht im Sitzungsprotokoll enthalten. Der Standardwert ist off .

Beobachtetes Verhalten

Also, soweit ich das verstanden habe und versuche, sie zu verwenden, nachdem ich screenlog aktiviert habe, protokolliert es alles, was ich schreibe, und alle Ausgaben von Terminal in dieser Datei (was mir zufälligerweise $HOME geht) einschließlich dieser Zeichen, um die Farbe wie 3[1;31mm zu ändern. Wenn ich cat screenlog.0 mache, stürzt es manchmal ab, wenn ich die Datei auf unbestimmte Zeit drucke, aber ok, ich kann sie mit einem Editor oder in einer anderen Sitzung öffnen ...

Wie für hardcopy , verfolgt es anscheinend weder Befehle noch Farben von Ausgaben, und ich weiß nicht, ob es nur die wenigen Zeilen benötigt, die im Terminal sichtbar sind oder alles, was in dieser Sitzung passiert ist jemand klärt mich das auf?

Schließlich öffne ich screen auf Terminator anstelle des klassischen Terminals, und selbst wenn ich verschiedene screen -Sitzungen in verschiedenen Fenstern von Terminator öffne, gehen alle Protokolle zu screenlog.0 oder hardcopy.0 . Im Fall von screenlog , tritt ein Konflikt mit einem anderen Prozess auf, der in anderen Sitzungen ausgegeben wird, oder überschreiben Sie ihn? Wie kann ich verschiedene screenlog.n Dateien erstellen und sie in ein anderes Verzeichnis als $HOME einfügen?

Weitere Überlegungen

Zum Schluss, welches wird empfohlen? Entschuldigung für diese große Frage, aber ich versuche es so zu schreiben, dass es nützlich sein kann, Details zu diesen Logs zu klären, die ich an anderen Orten nur schwer finden kann. Fühl mich frei, mich zu korrigieren, wenn ich etwas falsch gesagt habe:)

    
rafa 08.08.2013, 13:46
quelle

1 Antwort

0
Der Befehl

hardcopy speichert keine Zeichenattribute (Farben, Fett usw.), aber mit dem Argument '-h' wird auch der Inhalt des Scrollback-Puffers gespeichert.

Das Zielverzeichnis für Hardcopy-Dateien kann über hardcopydir command; vorhandene Dateien werden nicht verschoben und diese Einstellung gilt für alle derzeit geöffneten und zukünftigen Fenster; Verzeichnis für Protokolldateien ist "Standardverzeichnis des Fensters" - dies kann mit chdir command geändert werden; es gilt für das aktuelle Fenster und alle zukünftigen.

Das Protokolldateinamenmuster kann über den Befehl logfile festgelegt werden. Alle Escape-Sequenzen von screen sollten im Muster funktionieren. Beispiel: logfile screenlog.%Y%m%d.%S.%n . Das Hardcopy-Dateinamensmuster ist jedoch fest codiert.

    
sendmoreinfo 15.05.2016 20:53
quelle

Tags und Links