Écran GNU: imprimer une session détachée sur stdout

17

Je veux juste avoir un aperçu rapide de mes screensessions GNU détachées . Est-il possible de vider le contenu actuel sur stdout? Quelque chose comme

screen --print SESSION_NAME > file.txt
Pierre
la source

Réponses:

17

Vous pouvez vider une fenêtre d'une session d'écran avec screen -X hardcopy /some/file, qui enregistrera un vidage d'écran de la fenêtre actuelle dans /some/file.

Vous pouvez vider une fenêtre spécifique avec:

screen -X at 3 hardcopy /some/file

Et tous dans un seul fichier avec:

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

Vous pouvez également vider un fichier par fenêtre, en spécifiant dans quel répertoire les vider (si vous ne le spécifiez pas, ils seront vidés dans le répertoire screendans lequel a été démarré) avec

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

(sera sauvegardé dans des fichiers appelés hardcopy.<n>)

Voir l' -hoption d' hardcopyinclure le tampon de défilement.

Utilisez screenl' -Soption de comme d'habitude pour spécifier la session dans laquelle exécuter la commande. ⁣ ⁣ ⁣ ⁣

Stéphane Chazelas
la source
2
Si la session d'écran n'a jamais été attachée, la sélection d'une fenêtre avec -pou atest nécessaire . Donc, si screen -X hardcopy /some/filecela ne fonctionne pas, essayez screen -X at 0 hardcopy /some/fileou screen -p 0 -X hardcopy /some/file.
Gilles 'SO- arrête d'être méchant'
2
Existe-t-il un moyen de faire une copie papier de la sortie standard en dehors de la sortie vers un fichier temporaire, de sa capture, puis de la suppression du fichier temporaire?
Claudiu
1
@Claudiu: Votre question a plus de 3 ans mais la réponse est quand même pertinente: non; Je viens de comprendre en utilisant straceque l'écran "client" envoie la commande de copie papier au serveur et le serveur est ce qui le traite. (La page de manuel indique que le fichier papier est écrit dans le cwd du serveur, pas dans celui du client.) Les données TTY ne passent apparemment pas sur le fil dans le cas de la copie papier.
i336_
6

Commencez screenavec l' -Loption pour activer la journalisation de la session.

Alternativement, après avoir lancé screen, vous pouvez activer et désactiver la journalisation d'une fenêtre dans la screensession avec CTRLa- H.

Les journaux seront créés dans votre répertoire de travail actuel avec le nom screenlog.X où X est un numéro unique.

La sortie de la liste des fenêtres lorsque la journalisation est activée a un Ldans la colonne Indicateurs .

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