Linux录制、回放和共享终端操作
另一篇終端會(huì)話共享的文章:Linux終端會(huì)話實(shí)時(shí)共享(kibitz)
使用script命令錄制,使用scriptreplay播放錄制的操作。共享終端的操作,則需要使用命名管道來(lái)實(shí)現(xiàn)。
1.1 錄制
[root@xuexi ~]# cd /tmp [root@xuexi tmp]# script -t 2> timing.log -a output.session # 開(kāi)始錄制 Script started, file is output.session
[root@xuexi tmp]# ls # 執(zhí)行一個(gè)操作:命令ls abc.sh ab.sh index.html lost+found output.session scriptfifo test test1 timing.log vmware-root [root@xuexi tmp]# cd /tmp/test # 再執(zhí)行一個(gè)操作:命令cd
[root@xuexi test]# exit # 結(jié)束錄制 exit Script done, file is output.session
其中"-t 2> timing.log"是要回放的必須選項(xiàng),不加"2>"將導(dǎo)致開(kāi)啟錄制后的任何輸入都是亂碼狀態(tài),不加"-t timing.log"將不能使用scriptreplay來(lái)回放。timing.log記錄的是每個(gè)時(shí)間段輸入了多少字符。通過(guò)timing.log和output.session配合可以實(shí)現(xiàn)回放。
注意點(diǎn)是,錄制前保證timing.log和output.session是空文件,否則將導(dǎo)致回放時(shí)操作不一致。
1.2 回放
[root@xuexi test]# scriptreplay timing.log output.session
如果覺(jué)得回放的速度過(guò)慢(錄制時(shí)有些地方停頓,比如輸入了一個(gè)命令后,隔了一段時(shí)間才輸入另一個(gè)命令,這段時(shí)間對(duì)于回放來(lái)說(shuō)顯得慢很正常),可以修改timing.log文件。這個(gè)文件中分兩個(gè)字段,第一個(gè)字段記錄的是從上次輸出后到該次輸出的時(shí)間間隔,第二個(gè)字段是從output.session中讀取的字符數(shù)。要修改回放速度,只需將第一個(gè)字段較長(zhǎng)的間隔改短一點(diǎn)就可以。但是不應(yīng)該改的太短,否則回放速度過(guò)快。我覺(jué)得將間隔較長(zhǎng)的改成0.3-0.7秒,效果還不錯(cuò)。
[root@xuexi ~]# cat timing.log 0.117244 16 0.007955 1 0.298074 1 # 此處將原來(lái)的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 # 此處原來(lái)也是2.266129秒,顯然經(jīng)過(guò)一次命令輸出之后停頓了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 終端屏幕分享
通過(guò)管道來(lái)傳輸信息實(shí)現(xiàn)。需要一個(gè)pipe文件,并在需要展示的終端打開(kāi)這個(gè)管道文件。
在終端1(作為主終端,即演示操作的終端)上使用mkfifo創(chuàng)建管道文件。
[root@xuexi tmp]# mkfifo scriptfifo [root@xuexi tmp]# ll scriptfifo prw-r--r-- 1 root root 0 Sep 26 13:04 scriptfifo # 權(quán)限位前面的第一個(gè)p代表的就是pipe文件。
在終端2上打開(kāi)pipe文件。
[root@xuexi ~]# cat /tmp/scriptfifo
在終端1上使用script -f開(kāi)始記錄操作,之后的操作將會(huì)分享在終端2上。
[root@xuexi tmp]# script -f scriptfifo
使用exit即可停止分享并退出記錄行為。
[root@xuexi tmp]# exit exit Script done, file is scriptfifo
在被分享終端上參與分享狀態(tài)后將不能執(zhí)行任何操作,執(zhí)行的操作會(huì)被記錄下來(lái),并在主終端停止分享后自動(dòng)執(zhí)行。
需要注意的是,只能給一個(gè)會(huì)話共享會(huì)話終端。如果多個(gè)會(huì)話cat scriptfifo,會(huì)導(dǎo)致共享切開(kāi)顯示在多個(gè)不同會(huì)話上。
總結(jié)
以上是生活随笔為你收集整理的Linux录制、回放和共享终端操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Struts优缺点
- 下一篇: the first day