现在的位置: 首页 > 综合 > 正文

用script命令记录终端的操作和输出信息到文件

2013年08月19日 ⁄ 综合 ⁄ 共 1535字 ⁄ 字号 评论关闭

在git中,只要你拥有了hash码,你就拥有了一切,任何时候你都可以reset到你想要的任何一个历史状态,不管这个历史是在什么时候,或许相对于当前位置是历史,或许相对于当前位置是未来,你都可以去,所以你最好把你的hash码写到纸上,这样最保险。

基于这个原因,我期望能将我在终端的操作和终端输出全部记录下来,以便在使用git时确保可恢复。在网上搜了一下,发现只有这个script用起来最不错!

以下内容是网上搜的,没整理,将就着看吧。反正我只用简单script命令实现我想要的功能而已。

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

对终端输出进行复制粘贴可能非常乏味,我们使用一个叫做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 就能找到这个脚本。

抱歉!评论已关闭.