Home > linux > 使用script记录Linux终端会话

使用script记录Linux终端会话

许多系统管理员都知道保留一个包含各种任务、配置改变等活动日志的重要性。对一些组织而言,保留“我做了这件事”或“约翰做了那件事”的简单日志就已足够;但另一些组织则需要记录所有改变。

对终端输出进行复制粘贴可能非常乏味,我们使用一个叫做script的鲜为人知的程序来解决这个问题,它是大多数Linux产品util-linux软件包的一部分。

script记录会话的一切内容:你输入的内容和你看到的内容。它甚至记录颜色;因此如果你的命令提示符或程序输出中包含颜色,script将记录它。

要使用script,简单执行以下命令:

$ script

默认情况下,它向当前目录的typescript文件中写入内容。然后,你输入的一切内容都被记录到那个文件中。要往另一个文件中记录日志,只需使用script/path/to/file命令。

完成记录后,输入exit退出。这个命令将关闭script会话并保存文件。现在你可以使用cat或其它任何程序来检查日志文件。

使用script的缺点在于,它记录所有特殊的字符;因此你输入的文件中将充满控制字符和ANSI转义序列。你可以在script中使用一个非常简单的shell来解决这个问题:

$ SHELL=/bin/sh PS1=”$ ” script

使用script时,不要使用交互式程序或处理窗口的程序,如vior top。它们会破坏会话的输出结果。另外,日志文件会记录你使用的任何命令行程序和你完成一项任务所采取的步骤。如果你需要在脚本中编辑一个文件,考虑退出script会话,然后用script –a(它在旧会话后添加新会话)对文件进行编辑后再重新启动会话。

—————————-

在公司做了一个linux的服务器使用ssh管理,因为不止我一个人有帐号,所以想找个可以记录终端会话的软件。最后终于找到了

  开始录制会话:
  script -t 2>demo.timing -a demo.session
  -t 选项指明输出录制的时间数据
  -a 选项则输出录制的文件(附加)

  注:使用script时,不要使用交互式程序或处理窗口的程序,如vior top。它们会破坏会话的输出结果。

  甚至可以录制vim的编辑过程

  另外,日志文件会记录你使用的任何命令行程序和你完成一项任务所采取的步骤。如果你需要在脚本中编辑一个文件,考虑退出script会话,然后用script –a(它在旧会话后添加新会话)对文件进行编辑后再重新启动会话。

  结束录制会话:
  exit

  播放录制会话:
  scriptreplay demo.timing demo.session

  最后说明:以上两个命令都属于Linux产品util-linux软件包的一部分

  有些linux发行版有script命令但没有scriptreplay命令,scriptreplay命令其实就是一个perl脚本(这意味着录制下的内容在windows也能播放(只要是一个支持ANSI控制码的终端就能再现,cmd下有些乱码),good)大家可以自己找一下util-linux软件包的源代码包,解压后搜索一下scriptreplay 就能找到这个脚本。

Categories: linux Tags:
  1. No comments yet.
  1. No trackbacks yet.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Videos, Slideshows and Podcasts by Cincopa Wordpress Plugin