Logging GNU屏幕上的屏幕日志和硬拷贝之间的差异 介绍
我刚开始使用GNU屏幕,我之所以使用它,主要是因为我不想在SSH连接意外关闭时丢失我的工作,还因为我想在终端上打印每个输出的日志文件(至少是最近的一些曲目) 对于SSH的东西,我想Ctrl+AD来分离,然后Logging GNU屏幕上的屏幕日志和硬拷贝之间的差异 介绍,logging,terminal,gnu-screen,Logging,Terminal,Gnu Screen,我刚开始使用GNU屏幕,我之所以使用它,主要是因为我不想在SSH连接意外关闭时丢失我的工作,还因为我想在终端上打印每个输出的日志文件(至少是最近的一些曲目) 对于SSH的东西,我想Ctrl+AD来分离,然后screen-r或者screen-r session\u name重新连接到某个session来解决我的所有问题,现在我正在尝试理解日志记录 我在上找到了屏幕日志和硬拷贝,基本上是这样写的: hardcopyCtrl+AH将当前显示内容写入窗口默认目录中的文件hardcopy.n,其中n是当前
screen-r
或者screen-r session\u name
重新连接到某个session来解决我的所有问题,现在我正在尝试理解日志记录
我在上找到了屏幕日志
和硬拷贝
,基本上是这样写的:
hardcopyCtrl+AH将当前显示内容写入窗口默认目录中的文件hardcopy.n
,其中n
是当前窗口的编号。根据硬拷贝\u append
命令确定,如果文件存在,则追加或覆盖该文件
logCtrl+AH开始/结束将当前窗口记录到窗口默认目录中的文件screenlog.n
,其中n是当前窗口的编号。如果未给出任何参数,则切换日志记录状态。会话日志将附加到文件先前的内容(如果该文件已存在)。会话日志中不包括当前内容和回滚历史记录的内容。默认设置为关闭
观察到的行为 因此,据我了解并尝试使用它们,在启用
screenlog
后,它会将我写的所有内容和终端的所有输出记录在该文件中(对我来说,该文件正好转到$HOME
),包括那些要更改颜色的字符,如\033[1;31mm
。如果我使用cat screenlog.0
,有时会无限期打印文件时崩溃,但没问题,我可以使用编辑器或在其他会话中打开它
至于硬拷贝
,显然它不跟踪命令,也不跟踪输出的颜色,我不知道它是否只需要终端中可见的几行或会话中发生的一切,有人能向我澄清一下吗
最后,我在Terminator
上打开screen
而不是传统的终端,即使我在Terminator
的不同窗口上打开不同的screen
会话,所有日志都会转到screenlog.0
或硬拷贝.0
。如果是screenlog
,它会与另一个日志冲突吗正在其他会话上输出或覆盖它的进程?如何创建不同的screenlog.n
文件并将它们放在$HOME
以外的目录中
进一步考虑 最后,推荐哪一种?
对于这个巨大的问题,我很抱歉,但我正在尝试以一种有用的方式来编写它,以澄清我在其他地方很难找到的这些日志的详细信息。如果我说错了,请随时纠正我:)
硬拷贝
命令不保存字符属性(颜色、粗体等)但是,with'-h'参数还保存了回滚缓冲区的内容
可以通过hardcopydir
命令设置硬拷贝文件的目标目录;不移动现有文件,此设置适用于当前打开的所有窗口和将来打开的所有窗口;日志文件的目录为“窗口的默认目录”--这可以通过chdir
命令更改;它适用于当前窗口和所有未来窗口
日志文件名模式可以通过
logfile
命令设置。所有screen
的转义序列都应该在该模式下工作;例如,logfile screenlog.%Y%m%d.%s.%n
。但是,硬拷贝文件名模式是硬编码的。如果您刚刚开始使用screen
,也可以查看tmux
。@WilliAmpersell有时我需要在没有tmux
且我没有root权限的远程服务器上使用它,所以我只能使用screen
。顺便说一下,`tmux更简单/更好/更安全还是诸如此类?就我个人而言,我喜欢tmux
处理拷贝缓冲区的方式。你可以在运行时更改窗格/窗口/会话在回卷中以不同的状态显示不同的视图,这在屏幕上是不可能的(或者不是我最后一次查看)。