介绍
我是新用户GNU screen
,我使用它主要是因为如果我的 SSH 连接意外关闭,我不想丢失我的工作,还因为我想保留打印在终端上的每个输出的日志文件(至少一些最近的曲目)
对于 SSH 的东西,我想Ctrl+a d分离screen -r
或screen -r session_name
重新连接到某个会话解决了我所有的问题,现在我正在尝试理解日志记录。
我发现screenlog
并hardcopy
在这个链接上,它基本上说:
hardcopy Ctrl +a h将当前显示内容写到
hardcopy.n
窗口默认目录下的文件中,这里n
是当前窗口的编号。如果文件存在,这将附加或覆盖文件,由hardcopy_append
命令确定。log Ctrl +a H开始/结束将当前窗口记录到
screenlog.n
窗口默认目录中的文件,其中 n 是当前窗口的编号。如果没有给出参数,则切换记录状态。如果文件已经存在,则会话日志将附加到文件的先前内容中。当前内容和回滚历史的内容不包含在会话日志中。默认为off
。
观察到的行为
因此,据我了解并尝试使用它们,在启用之后screenlog
,它会继续记录我编写的所有内容以及该文件中终端的所有输出(恰好$HOME
适合我),包括那些改变颜色的字符,如\033[1;31mm
. 如果我这样做cat screenlog.0
了,它有时会无限期地打印文件时崩溃,但是好的,我可以用编辑器或在另一个会话中打开它......
至于hardcopy
,显然它没有跟踪命令,也没有输出颜色,而且我不知道它是否只需要终端中可见的那几行或该会话中发生的所有事情,有人可以向我澄清一下吗?
最后,我打开screen
而Terminator
不是经典终端,即使我screen
在不同的窗口上打开不同的会话Terminator
,所有日志都转到screenlog.0
或hardcopy.0
。在 的情况下screenlog
,它是否会与正在其他会话上输出的另一个进程冲突或覆盖它?如何创建不同的screenlog.n
文件并将它们放在除 之外的目录中$HOME
?
进一步的考虑
总结一下,推荐哪一个?对于这个巨大的问题,我很抱歉,但我正在尝试以一种有助于澄清我在其他地方很难找到的这些日志的细节的方式来编写它。如果我说错了,请随时纠正我:)