Tela GNU: imprime uma sessão desanexada para stdout

17

Eu só quero ter uma visão geral rápida das minhas screensessões GNU desanexadas . É possível despejar o conteúdo atual no stdout? Algo como

screen --print SESSION_NAME > file.txt
Pierre
fonte

Respostas:

17

Você pode despejar uma janela de uma sessão de tela com screen -X hardcopy /some/file, para salvar um despejo de tela da janela atual em /some/file.

Você pode despejar uma janela específica com:

screen -X at 3 hardcopy /some/file

E todos eles em um único arquivo com:

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

Você também pode despejar um arquivo por janela, especificando em qual diretório despejá-los (se você não o especificar, eles serão despejados no diretório em que screenfoi iniciado) com

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

(será despejado em arquivos chamados hardcopy.<n>)

Consulte a -hopção de hardcopyincluir o buffer de rolagem.

Use screena -Sopção de sempre para especificar a sessão na qual o comando será executado. ⁣ ⁣ ⁣ ⁣

Stéphane Chazelas
fonte
2
Se a sessão da tela nunca foi anexada, é necessário selecionar uma janela com -pouat . Portanto, se screen -X hardcopy /some/filenão funcionar, tente screen -X at 0 hardcopy /some/fileou screen -p 0 -X hardcopy /some/file.
Gilles 'SO- stop be evil'
2
Existe alguma maneira de copiar para stdout fora da saída para um arquivo temporário, catting e excluindo o arquivo temporário?
Claudiu 4/15
1
@ Claudiu: Sua pergunta tem mais de 3 anos, mas a resposta é relevante de qualquer maneira: não; Acabei de descobrir usando straceque a tela "cliente" envia o comando em cópia impressa para o servidor e o servidor é o que o processa. (A página de manual informa que o arquivo em cópia impressa é gravado no cwd do servidor, e não no cliente.) Os dados TTY aparentemente não passam pelo fio no caso de cópia impressa.
I336_
6

Comece screencom a -Lopção para habilitar o log da sessão.

Como alternativa, após o lançamento screen, você pode ativar screene desativar o log de uma janela na sessão com CTRLa- H.

Os logs serão criados no seu diretório de trabalho atual com o nome em screenlog.Xque X é um número exclusivo.

A saída da lista de janelas quando o log está ativado tem um Lna coluna Sinalizadores.

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