将所有的终端操作记录及回放

在教学过程中,因为总是担心学生没有掌握代码的细节,所以会把最终的代码给他们,但是过程是无法保存的。所以采用了如下方法,需要系统中有script和scriptreplay就可以,前者负责录制,后者负责回放。好在script 和 scirptreplay 命令在绝大多数Linux发行版上都可以找到,没有也很容易安装。原理就是把终端会话记录到一个文件中,在需要的时候予以重现,正好可以通过录制终端会话实现制作命令行教学视频教程的需求。

1、录制:将终端操作过程按照顺序录制时序信息到hello.session,觉得不需要录制时,输入exit结束
  script -t 2> hello.log -a hello.session
执行完这条shell,会记录下之后的操作的日志到 hello.session中,就可以使用scirptreplay 命令进行回放

2、回放:

  scriptreplay hello.log hello.session
3、分享:

  把hello.session分享给学生就可以看到终端操作的过程和细节了。 

4、记录所有用户的终端活动

  在某些关键业务的 Linux 服务器上,我们希望跟踪所有用户的活动,这可以使用 script 命令来完成,将以下内容放在 /etc/profile 文件中:  

  1. ……………………………………………………
  2. if "x$SESSION_RECORD" "x" ]
  3. then
  4. timestamp=$(date +%d-%m-%Y-%T)
  5. session_log=/var/log/session/session.$USER.$$.$timestamp
  6. SESSION_RECORD=started
  7. export SESSION_RECORD
  8. script ---2>${session_log}.timing $session_log
  9. exit
  10. fi
  11. ……………………………………………………

  文件中,制定了记录的文件格式以日期为记录,以静默的方式启动。一切安好,等着di人上钩吧,哈哈哈哈。保存文件并退出。

  在 /var/log 文件夹下创建 session 目录:

  mkdir /var/log/session

  给该文件夹指定权限:

  chmod 777 /var/log/session/

  到需要的时候可以使用 scriptreplay 命令来重放用户的终端会话活动,那就是你可以保持沉默,但是…… ……:

  scriptreplay --timing session.pkumar.19785.21-06-2019-04:34:05.timing session.pkumar.19785.21-06-2019-04:34:05

参考文献:http://www.linuxeden.com/a/55615

原文地址:https://www.cnblogs.com/guochaoxxl/p/11633645.html