将屏幕缓冲区传递给另一个命令?


1

我似乎找不到任何东西,因此,有没有办法将屏幕窗口中的所有内容传送到另一个命令中。我有一个在屏幕上运行的服务器(不是最好的主意,而是服务器atm的唯一方法),并且想解析输出(在运行时,是否可以将打印到该分离的屏幕上的所有内容转换为另一个命令?

谢谢,马克斯


考虑重新启动服务器并将其输出通过管道传输tee
丹尼尔·贝克

Answers:


1

如果需要记录正在运行的屏幕会话的输出,请执行以下操作:

  1. 附加到会话。

  2. 按您的Prefix键(Ctrl+A在未更改的设置上),然后:输入logfile <filename>

  3. 再次Prefix :输入logfile flush <interval in seconds>

  4. Prefix :,输入log on

screen现在将记录所有输出到文件<filename>,每<interval>秒。您可以使用tail -f该文件来处理输出。

您可以跳过步骤2至4 Prefix,然后按,然后按H。默认值将是screenlog.n用于<filename>与10秒<interval>

请注意,如果要处理大量输出,文件可能会变得很大。


1

大概是这样的:

$ screen -d -m sh -c "/path/to/my/exec | tee output.log" 

服务器正在运行时,此输出是否会输出?还是仅在服务器重启后?抱歉,无法真正在实时服务器上进行测试(重新启动在游戏服务器上效果不佳),并且如果不需要,也不想复制环境。
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.