记录 bash 会话

记录 bash 会话

出于审计和文档目的,我想找到一个命令,以便将给定 bash 会话中发生的所有事情写入文件。

即,我希望最终得到一个文件,显示我运行的所有命令以及这些命令的所有输出。

我知道我可以使用历史文件(运行命令)获取其中的一部分,并通过重定向输出获取其中的一部分。

然而,我觉得 bash 本身应该有这种功能,只是我还没有找到。

例子:

> bash --some-kind-of-magic output.txt
$ cat file1.txt
this is the content of file1.txt
$ grep test file2.txt
this is the output of the command
$ exit
> cat output.txt
$ cat file1.txt
this is the content of file1.txt
$ grep test file2.txt
this is the output of the command
$ exit

答案1

您可以使用script它来记录命令的所有输出,甚至可以启动命令。您可以启动的一个命令是启动一个 shell。例如 script my_log /usr/local/bin/bash

如果这不是一次性事件,请在您的帖子中提及。(在这种情况下,您可能希望将其设置在该用户的登录脚本中,可能是执行脚本,并将日志放置在无法操作日志的地方)。

相关内容