GNU屏幕:将分离的会话打印到标准输出


17

我只想快速了解我的独立GNU screen会话。是否可以将当前内容转储到stdout?就像是

screen --print SESSION_NAME > file.txt

Answers:


17

您可以使用来转储屏幕会话的一个窗口screen -X hardcopy /some/file,这会将当前窗口的屏幕转储保存在中/some/file

您可以使用以下方法转储特定窗口:

screen -X at 3 hardcopy /some/file

所有这些都在一个文件中,具有:

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

您还可以在每个窗口中转储一个文件,方法是指定将文件转储到的目录(如果未指定,则将它们转储到screen开始目录中)

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

(将转储到名为的文件中hardcopy.<n>

请参阅的-h选项hardcopy以包括滚动缓冲区。

像往常一样使用screen-S选项来指定要在其中运行命令的会话。


2
如果从未连接过屏幕会话,则必须使用-p或选择一个窗口at。因此,如果screen -X hardcopy /some/file不起作用,请尝试screen -X at 0 hardcopy /some/filescreen -p 0 -X hardcopy /some/file
吉尔(Gilles)'所以

2
除了输出到临时文件,添加目录然后删除该临时文件之外,还有什么方法可以硬拷贝到stdout?
克劳迪(Claudu),2015年

1
@Claudiu:您的问题已经3岁以上了,但答案仍然是相关的:不;我只是想知道使用strace“客户端”屏幕将硬拷贝命令发送到服务器,服务器是对其进行处理的。(该联机帮助页指出,硬拷贝文件写入服务器的cwd中,而不是客户端的cwd中。)对于硬拷贝,TTY数据显然不会通过网络传输。
i336_

6

从启用会话记录screen-L选项开始。

或者,启动后screen,可以screen使用CTRLa- 打开和关闭会话中的窗口记录H

日志将在您当前的工作目录中创建,名称为screenlog.XX,其中X是唯一编号。

启用日志记录时,窗口列表的输出L在“标志”列中有一个。

Num Name           Flags
  0 fedora         $(L)               
  1 sudo           $                                        
  2 fedora         $(L)                                                
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.