溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux怎么使用 Asciinema

發(fā)布時間:2021-10-25 15:02:25 來源:億速云 閱讀:191 作者:小新 欄目:系統(tǒng)運維

這篇文章給大家分享的是有關(guān)Linux怎么使用 Asciinema的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

asciinema  是一款開源免費的終端錄制工具,它可以將命令行輸入輸出的任何內(nèi)容加上時間保存在文件中,同時還提供方法在終端或者web瀏覽器中進行回放。

asciinema的錄制和播放都是基于文本的,相比傳統(tǒng)的video有很多好處,例如錄制文件體積小,在播放的過程中可以暫停復(fù)制其中的文本內(nèi)容等等。同時  asciinema 還提供了一個網(wǎng)站,你如果愿意還可以將錄制的內(nèi)容上傳至 asciinema.org  進行展示,也可以在這里找到很多有趣的終端錄像。asciinema 由以下三個子項目構(gòu)成:

  1. 鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)

  2. asciinema:基于命令行的終端會話記錄器

  3. asciinema.org:提供API供上傳錄像和展示的網(wǎng)站

  4. javascript player:用于在web上播放錄像的js播放器

asciinema 的安裝和使用都非常簡單,一起來看看吧

安裝

asciinema 為 python 開發(fā),可以直接通過apt-get、yum或者pip進行安裝

# apt-get install asciinema

安裝完成后查看版本

# asciinema --version asciinema 2.0.2

asciinema 有v1和v2兩個版本,差異較大,咖啡君使用了v2,以下所有內(nèi)容也基于v2演示。

asciinema 有5個參數(shù),分別為錄制:rec,播放:play,以文件形式查看錄制內(nèi)容:cat,上傳文件到 asciinema.org  網(wǎng)站:upload、asciinema.org 賬號認(rèn)證:auth,本文主要說明rec和play的使用。

錄制

# asciinema rec ops-coffee.cast

有幾個參數(shù)可以使用:

--stdin表示啟用標(biāo)準(zhǔn)輸入錄制,意思是通常情況下linux輸入密碼類的信息都不會顯示,如果開啟了這個選項,可以記錄鍵盤輸出的密碼,但這個功能官方似乎還沒有支持,加了后看不到效果。

--append 添加錄制到已存在的文件中。

--raw 保存原始STDOUT輸出,無需定時信息等。

--overwrite 如果文件已存在,則覆蓋。

-c 要記錄的命令,默認(rèn)為$SHELL。

-e 要捕獲的環(huán)境變量列表,默認(rèn)為SHELL,TERM。

-t 后跟數(shù)字,指定錄像的title。

-i 后跟數(shù)字,設(shè)置錄制時記錄的最大空閑時間。

-y 所有提示都輸入yes

-q 靜默模式,加了此參數(shù)在進入錄制或者退出錄制時都沒有提示。

輸入exit或按ctrl+D組合鍵退出錄制。

播放

# asciinema play ops-coffee.cast

有兩個參數(shù)可以使用:

-s 后邊跟數(shù)字,表示用幾倍的速度來播放錄像

-i 后邊跟數(shù)字,表示在播放錄像時空閑時間的最大秒數(shù)

在播放的過程中你可以通過空格來控制暫?;虿シ?,也可以通過ctrl+c組合鍵來退出播放,當(dāng)你按空格鍵暫停時,可以通過.號來逐幀顯示接下來要播放的內(nèi)容。

文件

asciinema 推薦的文件后綴是.cast,當(dāng)然linux是不關(guān)心文件后綴的,你用什么都可以,推薦按規(guī)范使用.cast,文件內(nèi)容大概如下

# cat ops-coffee.cast {"version": 2, "width": 237, "height": 55, "timestamp": 1572646909, "env": {"SHELL": "/bin/bash", "TERM": "linux"}, "title": "ops-coffee"} [0.010014, "o", "root@onlinegame:~# "] [1.296458, "o", "exit"] [1.976439, "o", "\r\n"] [1.976532, "o", "exit\r\n"]

cast 文件主要有兩部分組成,位于第一行的一個字典,這里叫 header

{     "version": 2,     "width": 237,     "height": 55,     "timestamp": 1572646909,     "env": {         "SHELL": "/bin/bash",         "TERM": "linux"     },     "title": "ops-coffee" }

header很簡單,字段的意思分別為:version版本,width和height分別表示錄制窗口的寬高,timestamp錄制開始的時間戳,env錄制時指定的-e參數(shù)設(shè)置,title錄制時指定的-t參數(shù)設(shè)置。

接下來的都是固定格式的內(nèi)容,實際上就是IO流信息

[0.010014, "o", "root@onlinegame:~# "]

每一行都是由三部分組成的一個列表

  • 第一部分為一個浮點數(shù),表示輸入輸出這一行內(nèi)容所花的時間

  • 第二部分似乎是一個固定的字符串,沒有找到說明做什么用的

  • 第三部分就是具體的輸入輸出的內(nèi)容

這個文件格式設(shè)計還是非常優(yōu)雅的,開頭 header 聲明,后邊具體內(nèi)容,如果中途因為任何意外導(dǎo)致錄像終止,也不會丟失整個錄像,而且還可以 append  增加錄像,這在需要長時間暫停錄制時非常有用,更重要的是可以流式讀取,幾乎很少占用內(nèi)存,不需要把整個錄像文件都放在內(nèi)存中,對長時間的錄制播放更友好。

自動錄制審計日志

如果你有經(jīng)歷過嚴(yán)格的IT審計,或者有用到堡壘機,就會知道操作過程是需要記錄并加入審計的,如果你有因為不知道是誰操作了什么導(dǎo)致了數(shù)據(jù)被刪而背鍋的經(jīng)歷,就會知道對操作過程的記錄有多么的重要,接下來以一個簡單的案例來介紹asciinema有什么樣的實用價值。

非常簡單,只需要在 devuser 用戶的家目錄下添加.bash_profile文件即可,內(nèi)容如下:

$ cat ~/.bash_profile export LC_ALL=en_US.UTF-8 /usr/local/bin/asciinema rec /tmp/$USER-$(date +%Y%m%d%H%M%S).log -q

添加export LC_ALL=en_US.UTF-8的原因是有可能系統(tǒng)會報錯:

asciinema needs a UTF-8 native locale to run. Check the output of locale command.

rec命令進行錄制時添加了-q 參數(shù),這樣在進入或者退出時都不會有任何關(guān)于 asciinema 的提示,使用簡單方便。

這樣 devuser 用戶每次登陸就會自動開啟一個錄像,如果需要審計或檢查操作,只需要回放錄像就可以了。

你可能會說history命令一樣可以記錄用戶操作,asciinema 有什么優(yōu)勢呢?asciinema  不僅可以記錄用戶的輸入,還可以記錄系統(tǒng)的輸出,也就是說history只能記錄執(zhí)行的命令,而 asciinema  還可以記錄執(zhí)行的結(jié)果,怎么樣,是不是很方便,趕緊試試吧。

感謝各位的閱讀!關(guān)于“Linux怎么使用 Asciinema”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI