通过Linux命令实现屏幕录制和回放
平时在工作学习中如果可以录屏的话,那么在以后能够再看真是很难得的学习资料。有些远程的操作都是命令行,如果使用录屏软件,可能占用的空间极大。其实Linux中可以通过命令行来实现屏幕录制和屏幕回放。
如果自己需要给别人演示一些操作,可能事先已经准备好了,在演示的时候只需要播放即可。或者在系统升级的时候需要保留必要的日志,在以后可以更加有针对性的总结,都可以通过屏幕录制功能来完成。
我们需要系统中已经安装script,scriptreplay.
比如我们可以通过如下的方式来完成。简单运行几个命令,然后通过回放来看是否能够一步一步的输出。
$ script -t 2> time.log -a record.session
Script started, file is record.session
$ echo test begin
test begin
$ echo test start
test start
$ echo test end
test end
$ exit
exit
Script done, file is record.session
到此屏幕的录制就结束了,我们通过scriptreplay来回放这个过程。
$ scriptreplay time.log record.session
输入这个命令之后,你就会看到屏幕好像被人操纵了一样,一步一步的运行命令,然后输出,感觉很有成就感。
如果你需要在别的机器上查看这个过程,可以把time.log和record.session这个两个生成的文件拷贝过去,直接运行命令即可。
时间戳文件的内容如下。都是记录了一点点的操作时间信息。
$ cat time.log
0.350314 17
0.052705 1
1.176860 1
0.241008 1
0.064975 1
。。。。
而record.session这个文件就是个日志文件,里面记录了每一步操作的内容。
Script started on Sun 04 Jan 2015 05:13:46 AM PST
$ echo test begin
test begin
$ echo test start
test start
$ echo test end
test end
$ exit
exit
Script done on Sun 04 Jan 2015 05:14:05 AM PST
以上的功能能够极大的提高我们的工作效率,毕竟很多问题的排查中都需要日志,都需要一些细节的操作内容信息。这些信息就相当于完整的回放了问题的处理过程。
如果你还不满足于此,可以试试实时分享屏幕内容给其他人,其他人不需要装其他的视频软件就能够看到你所有的操作。
毕竟视频的录制还是需要很多的资源的。
经过反复尝试,发现这个操作在两个人之间共享输出还是正常的,如果多个session,可能有些操作内容会不太完整。
我们开启两个session来操作。假设session1和session2都在同一个服务器端,同一个目录下。
session1 创建fifo的日志。
>mkfifo fifo.log
session2 开始准备监听
>cat fifo.log
session1 开始准备输出
>script -f fifo.log
Script started, file is fifo.log
$ ls --这个时候我们的任何操作在session2中都会捕捉到。