天天看點

通過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

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中都會捕捉到。

繼續閱讀