GNU-Bildschirm: Eine getrennte Sitzung auf stdout drucken

17

Ich möchte nur einen schnellen Überblick über meine getrennten GNU- screenSitzungen haben. Ist es möglich, den aktuellen Inhalt auf stdout abzulegen? Etwas wie

screen --print SESSION_NAME > file.txt
Pierre
quelle

Antworten:

17

Sie können ein Fenster einer Bildschirmsitzung mit screen -X hardcopy /some/filesichern, in dem ein Bildschirmabbild des aktuellen Fensters gespeichert wird /some/file.

Sie können ein bestimmtes Fenster sichern mit:

screen -X at 3 hardcopy /some/file

Und das alles in einer einzigen Datei mit:

screen -X eval 'hardcopy_append on' 'at \\# hardcopy /some/file'

Sie können auch eine Datei pro Fenster sichern, indem Sie angeben, in welches Verzeichnis sie gesichert werden sollen (wenn Sie es nicht angeben, werden sie in das Verzeichnis gesichert, in dem sie screengestartet wurden)

screen -X eval 'hardcopydir /some/dir' 'at \\# hardcopy'

(wird in die genannten Dateien gespeichert hardcopy.<n>)

Siehe die -hOption hardcopy, den Bildlaufpuffer einzuschließen.

Verwenden Sie screen‚s - -SOption wie gewohnt die Sitzung geben Sie den Befehl in auszuführen. ⁣ ⁣ ⁣ ⁣

Stéphane Chazelas
quelle
2
Wenn die Bildschirm - Sitzung nie angebracht ist, mit einem Fenster auswählen -poder atnotwendig ist . Wenn screen -X hardcopy /some/filedies nicht funktioniert, versuchen Sie screen -X at 0 hardcopy /some/fileoder screen -p 0 -X hardcopy /some/file.
Gilles 'SO- hör auf böse zu sein'
2
Gibt es eine Möglichkeit, außerhalb der Ausgabe in eine temporäre Datei eine Hardcopy zu erstellen, diese zu zwischenspeichern und dann die temporäre Datei zu löschen?
Claudiu,
1
@Claudiu: Deine Frage ist 3 Jahre + alt, aber die Antwort ist trotzdem relevant: nein; Ich habe gerade herausgefunden, stracedass der "Client" -Bildschirm den Hardcopy-Befehl an den Server sendet und der Server ihn verarbeitet. (Die Manpage gibt an, dass die Hardcopy-Datei im CWD des Servers und nicht im CWD des Clients geschrieben ist.) Die TTY-Daten werden bei Hardcopy anscheinend nicht übertragen.
i336_
6

Beginnen Sie screenmit der -LOption zum Aktivieren der Sitzungsprotokollierung.

Alternativ können Sie nach dem Start screendie Protokollierung eines Fensters in der screenSitzung mit CTRLa- ein- und ausschalten H.

Die Protokolle werden in Ihrem aktuellen Arbeitsverzeichnis mit dem Namen erstellt, screenlog.Xwobei X eine eindeutige Nummer ist.

Die Ausgabe der Fensterliste bei aktivierter Protokollierung enthält eine Lin der Spalte Flags.

Num Name           Flags
  0 fedora         $(L)               
  1 sudo           $                                        
  2 fedora         $(L)                                                
George M
quelle