Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging GNU屏幕上的屏幕日志和硬拷贝之间的差异 介绍_Logging_Terminal_Gnu Screen - Fatal编程技术网

Logging GNU屏幕上的屏幕日志和硬拷贝之间的差异 介绍

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是当前

我刚开始使用GNU屏幕,我之所以使用它,主要是因为我不想在SSH连接意外关闭时丢失我的工作,还因为我想在终端上打印每个输出的日志文件(至少是最近的一些曲目)

对于SSH的东西,我想Ctrl+AD来分离,然后
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
处理拷贝缓冲区的方式。你可以在运行时更改窗格/窗口/会话在回卷中以不同的状态显示不同的视图,这在屏幕上是不可能的(或者不是我最后一次查看)。