他们在任何地方登录吗?终端死机后标准输出去哪里?我知道我可以在它运行时轻松保存它,但有时我们只是在终端消失后才意识到我们需要它。
script ~/terminal_logs/$(date +%Y%m%d-%H%M%S)-$(tty)-$$.log
登录时在终端中使用。这会将您的会话保存在一个以 shell 启动的日期和时间、终端和 shell 进程 ID 命名的文件中。
不,一旦终端消失,输出也消失了。其中一些可能仍然在 RAM 中逗留一段时间,一些可能由于各种日志设置而被保存到日志中,但基本上它已经丢失了。这是故意的。如果信息被记录下来,它会很快填满你的磁盘(如果你对所有东西都使用 shell,字符就会真正增加),并且它可能至少包含一些机密信息。我曾经尝试将 GNOME 终端回滚缓冲区设置为无限制。不久之后,我的机器开始缓慢爬行。终端正在使用我所有的内存!
您可以通过exec > /tmp/stdout.log 2> /tmp/stderr.log
在 ~/.bashrc (未经测试)中使用类似的东西来设置一些花哨的日志记录,例如logstash
轮换您的日志,但它仍然存在将机密信息保留一段时间的基本问题。
大多数人做的是依赖 shell 的历史文件,例如 ~/.bash_history,它存储命令,以便您可以重现结果。