使用script录制终端操作
script是一个非常炫酷的命令,它可以将终端的所有操作和输入输出录制下来,并通过 scriptreplay播放,是命令行版的"屏幕录像专家"。非常实用,例如你想教很多人配置一个软件,可以在自己配置时,将过程录下来,然后发给别人自学,灰常的优雅!
一.安装
多数操作系统都默认安装了,Redhat/Fedora/CentOS:
yum install util-linux-ng
Debian/ubuntu:
apt-get install bsdutils
二、录制和播放
2.1 录制
script -t -a 2> /tmp/time.txt /tmp/record.txt
为了不影响操作,要使用错误重定向,在录制过程中,使用 Ctrl+d 或者 exit 结束录制
简单说下命令的参数:
-t 是把时间数据输出到标准错误(standard error), 所以要用 2>/tmp/time.txt 把数据重定向到文件中
一些情况下不需要重放,只要记录操作和输入输出,就可以不指定这个参数
-a 追加内容到文件,不会覆盖之前的记录
-q 安静模式,不会提示用户script在运行
-f 在每次写入后清屏,在配合管道使用时很有用
-c 这些非交互式的运行命令或脚本 在一些程序或脚本在后台运行时很有用
2.2 播放
scriptreplay /tmp/time.txt /tmp/record.txt
2.3 记录用户操作
记录某个用户,在用户的~/.profile文件中加入:
/usr/bin/script -qa /tmp/user_record
记录所有用户的操作,需将上述内容加在/etc/profile文件中。记录用户操作输出会比较多,回放非常耗时,所以通常不记录时间
2.4 实时广播操作
广播自己的操作给服务器上其它用户看,需要先创建一个管道:
mkfifo /tmp/fifo
将scritp输出到管道:
script -f /tmp/fifo
其它用户执行:
cat /tmp/fifo
就能实时查看到操作和输入输出了
参考文章:
http://www.linuxnix.com/record-terminalshell-session-linux/
http://www.cnblogs.com/Suzzz/p/4107700.html