我们想保存在 Linux 控制台上运行的程序的输出,该程序跨越多行。不幸的是,它没有被记录或在屏幕下运行,或者任何其他让我们轻松捕获输出的方式。到目前为止,我们能想到的最好的方法是:
Log into the machine via a separate SSH session
In the console session, page to the top of the buffer
Repeat:
In the SSH session, run "cat /dev/vcs >> screendump.txt"
In the console session, page down one screen
Dump the final screen in the SSH session
有没有更好的办法?看起来如果 VC 内存是连续的,并且您知道它在哪里,您可以使用它dd
来将控制台文本直接从内核内存中拉出并放入文件中。
setterm可以转储 Linux 虚拟控制台的内容:
但是,它无法访问回滚缓冲区,只能访问当前显示的内容。
除非
VGACON_SOFT_SCROLLBACK
设置为“Y”,否则回滚缓冲区位于 VGA 内存而不是系统内存中。