Linux录制、回放和共享终端操做

另外一篇终端会话共享的文章:Linux终端会话实时共享(kibitz)html

使用script命令录制,使用scriptreplay播放录制的操做。共享终端的操做,则须要使用命名管道来实现。session

1.1 录制

[root@xuexi ~]# cd /tmp

[root@xuexi tmp]# script -t 2> timing.log -a output.session  # 开始录制
Script started, file is output.session
[root@xuexi tmp]# ls                 # 执行一个操做:命令ls
abc.sh  ab.sh  index.html  lost+found  output.session  scriptfifo  test  test1  timing.log  vmware-root

[root@xuexi tmp]# cd /tmp/test      # 再执行一个操做:命令cd
[root@xuexi test]# exit  # 结束录制
exit
Script done, file is output.session

其中"-t 2> timing.log"是要回放的必须选项,不加"2>"将致使开启录制后的任何输入都是乱码状态,不加"-t timing.log"将不能使用scriptreplay来回放。timing.log记录的是每一个时间段输入了多少字符。经过timing.log和output.session配合能够实现回放。spa

注意点是,录制前保证timing.log和output.session是空文件,不然将致使回放时操做不一致。code

1.2 回放

[root@xuexi test]# scriptreplay timing.log output.session

若是以为回放的速度过慢(录制时有些地方停顿,好比输入了一个命令后,隔了一段时间才输入另外一个命令,这段时间对于回放来讲显得慢很正常),能够修改timing.log文件。这个文件中分两个字段,第一个字段记录的是从上次输出后到该次输出的时间间隔,第二个字段是从output.session中读取的字符数。要修改回放速度,只需将第一个字段较长的间隔改短一点就能够。可是不该该改的过短,不然回放速度过快。我以为将间隔较长的改为0.3-0.7秒,效果还不错。htm

[root@xuexi ~]# cat timing.log
0.117244 16
0.007955 1
0.298074 1       # 此处将原来的2.298074改成0.3秒
0.216628 1
0.092781 1
0.081659 1
0.083258 1
0.419445 1
0.314128 1
0.100810 1
0.083998 30
0.491283 1
0.266129 1   # 此处原来也是2.266129秒,显然通过一次命令输出以后停顿了2秒多
0.099767 1
0.127625 1
0.078809 1
0.181493 1
0.147795 1
0.115808 1
0.077416 1
0.274658 1
0.257042 1
0.524460 4
0.297133 38
0.458018 1
0.416350 1
0.187270 1
0.125467 1
0.100756 8

1.3 终端屏幕分享

经过管道来传输信息实现。须要一个pipe文件,并在须要展现的终端打开这个管道文件。blog

在终端1(做为主终端,即演示操做的终端)上使用mkfifo建立管道文件。ip

[root@xuexi tmp]# mkfifo scriptfifo

[root@xuexi tmp]# ll scriptfifo
prw-r--r-- 1 root root 0 Sep 26 13:04 scriptfifo   # 权限位前面的第一个p表明的就是pipe文件。

 

在终端2上打开pipe文件。get

[root@xuexi ~]# cat /tmp/scriptfifo

 

在终端1上使用script -f开始记录操做,以后的操做将会分享在终端2上。it

[root@xuexi tmp]# script -f scriptfifo

 

使用exit便可中止分享并退出记录行为。pip

[root@xuexi tmp]# exit
exit
Script done, file is scriptfifo

在被分享终端上参与分享状态后将不能执行任何操做,执行的操做会被记录下来,并在主终端中止分享后自动执行。

须要注意的是,只能给一个会话共享会话终端。若是多个会话 cat scriptfifo ,会致使共享切开显示在多个不一样会话上。

相关文章
相关标签/搜索