Asciinema - 終端日志記錄神器,開發者的福音
我們在做機器學習/深度學習開發的時候,經常會產生如下所示的大量日志:
這些日志如果不保存,轉瞬即逝,當我們想要回去翻看某一輪訓練日志的時候,會很遺憾的發現找不到了。
現在有了這個 Asciinema 這個神器,我們不僅能找到并導出當時的終端日志,還能夠“重播日志”并“分享日志”。非常牛逼:
Asciinema 是使用Python開發的工具,請按下面的流程安裝并使用。
1.準備
開始之前,你要確保Python和pip已經成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。
(可選1) 如果你用Python的目的是數據分析,可以直接安裝Anaconda:Python數據分析與挖掘好幫手—Anaconda,它內置了Python和pip.
(可選2) 此外,推薦大家用VSCode編輯器,它有許多的優點:Python 編程的最好搭檔—VSCode 詳細指南。
請選擇以下任一種方式輸入命令安裝依賴:
1. Windows 環境 打開 Cmd (開始-運行-CMD)。
2. MacOS 環境 打開 Terminal (command+空格輸入Terminal)。
3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install asciinema
2.使用
終端輸入如下命令,記錄你的第一個終端日志:
asciinema rec first.cast
輸入完成后會顯示如下的提示:
(gs3_9) zjr@sgd-linux-1:~/cnn_test$ asciinema rec first.cast
asciinema: recording asciicast to first.cast
asciinema: press <ctrl-d> or type "exit" when you're done
意思就是日志會被保存在當前文件夾下的first.cast,如果你想結束錄制,按 Ctrl + D 即可。
記錄完畢后,以雙倍速度重播該日志:
asciinema play -s 2 first.cast
或以正常速度但空閑時間限制為 2 秒:
asciinema play -i 2 first.cast
你也可以在啟動終端日志錄制時傳遞 -i 2 給 asciinema rec,將其永久設置在錄制中:
asciinema rec first.cast -i 2
空閑時間的限制使錄制更有趣。試試吧。
如果你想在網絡上觀看和分享,請上傳:
asciinema upload first.cast
這個命令會將日志記錄上傳到 asciinema.org,此外,它會打印一個秘密鏈接,你可以使用該鏈接在網絡瀏覽器中觀看你錄制的終端日志:
你可以通過省略文件名一步錄制和上傳終端的日志:
asciinema rec
錄制完成后,系統會要求你確認上傳。未經你的同意,不會向任何地方發送任何內容。
3.播放日志
查看日志有四種方式,最普通的是通過本地文件進行終端重播:
asciinema play /path/to/asciicast.cast
以下鍵盤快捷鍵可用:
- Space- 暫停,
- .- 按幀步進(暫停時),
- Ctrl+C- 退出
第二種方式是通過url播放:
asciinema play https://asciinema.org/a/22124.cast
asciinema play http://example.com/demo.cast
這個方式需要你的日志已經上傳到asciinema.org中。
第三種方式是通過你自己生成的html頁面訪問(需要<link rel="alternate" type="application/x-asciicast" href="/my/ascii.cast">在頁面的 HTML 中):
asciinema play http://your_html_path/post.html
第四種方式是通過標準輸入輸出播放:
cat /path/to/asciicast.cast | asciinema play -
# ssh user@host cat asciicast.cast | asciinema play -
可用選項:
- -i, --idle-time-limit=<sec>- 將重播的終端空閑不動時間閑置為最大<sec>秒數
- -s, --speed=<factor>- 播放速度
4.導出日志
導出終端日志到文本文件非常簡單:
asciinema cat existing.cast > terminal_output.txt
所有的終端日志都會被導出到 terminal_output.txt 中,非常方便好用。
我們的文章到此就結束啦。