在Unix系统维护中,有时候系统工程师希望能够记录下会话的过程。如在测试一个系统功能的时候,工程师就希望将测试的步骤都一一的纪录下来。以便出现问题时利用这份资料进行追踪分析。如有时候在制作培训文档的时候,可能也需要这些会话记录,以方便培训师制作PPT等培训文档。

在Unix系统维护中,有时候系统工程师希望能够记录下会话的过程。如在测试一个系统功能的时候,工程师就希望将测试的步骤都一一的纪录下来。以便出现问题时利用这份资料进行追踪分析。如有时候在制作培训文档的时候,可能也需要这些会话记录,以方便培训师制作PPT等培训文档。总之就是一句话,系统工程师现在想要记录某个会话的过程,在Unix系统中能否实现?

一、script命令的主要作用于特点。

在Windows操作系统中,读者可能用过一些屏幕记录软件,可以将某段时间的操作通过视频的形式记录下来。不过在Unix操作系统中,有时候不用这么麻烦。因为操作系统提供了一个script命令,帮助系统工程师来记录某个会话的过程。这是一个比较冷僻的命令,也不在POSIX的规范中。为此有些Unix操作系统版本就可能不带有这个功能。不少系统工程师可能平时很少接触这个命令。不过笔者是比较喜欢这命令的。简单的说,系统工程师利用这个命令就可以将一个会话的整个过程或则中间的某些操作记录到一个文件中。利用这个命令基本上可以在文件中记录大部分的键盘操作、命令的输出结果以及错误信息。也就是说,在屏幕上输出的信息基本上都可以保存在这个文件中。然后系统管理员可以在事后查看这个文件以获得必要的信息。那么这个命令该如何使用呢?如下图,其实很简单。

Linux,会话过程,命令

如上图所示,就是script命令使用的基本过程。首先当系统工程师想要记录某个会话的时候,则只需要在会话开始时输入script命令。输入这个命令后,系统就会将当前用户的所有键盘操作、屏幕输出以及错误信息等等保存到一个特定的文件中。如上面执行了ps命令与who命令后,希望就会将这两个命令(用户的键盘操作)、屏幕输出(命令的执行结果)等等保存到文件中。当工程师需要退出记录过程时,则只需要输入exit命令,系统就会就是script done的提示信息。表示系统已经结束了记录工作。

当系统工程师需要查看这个文件的信息时,可以使用cat或者vi命令来查看这个文件中的内容。不过所使用的shell版本不同,他们先是的结果可能有所差异。如在某些版本中,使用cat命令来查看这个文件,可能只显示这个命令在什么时候完成,而不会显示用户的键盘操作与屏幕的输出信息。为此笔者建立采用vi命令。利用vi命令来查看这个文件,就不会有版本之间的差异问题。如使用vi typescript命令,就可以查看这个文件中的具体信息。通常情况下,整个文件中包含以下几部分内容。

第一行是注释信息。如“Script started on 2009年06月15日 星期一 18时24分21秒”。这个提示信息显示这个命令开始执行的时间。然后在最后一行中,也有类似的提示信息。不过最后一行的提示信息显示的是这个命令完成的时间,显示了命令执行完成的日期、具体时间等西虚拟。然后中间的部分就是命令与输出结果的信息。如果在命令的的执行过程中,有错误信息的话,也会一并在这里记录。