Linux怎么使用 Asciinema

66次阅读
没有评论

共计 2915 个字符,预计需要花费 8 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章给大家分享的是有关 Linux 怎么使用 Asciinema 的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

asciinema   是一款开源免费的终端录制工具,它可以将命令行输入输出的任何内容加上时间保存在文件中,同时还提供方法在终端或者 web 浏览器中进行回放。

asciinema 的录制和播放都是基于文本的,相比传统的 video 有很多好处,例如录制文件体积小,在播放的过程中可以暂停复制其中的文本内容等等。同时  asciinema 还提供了一个网站,你如果愿意还可以将录制的内容上传至 asciinema.org   进行展示,也可以在这里找到很多有趣的终端录像。asciinema 由以下三个子项目构成:

鸿蒙官方战略合作共建——HarmonyOS 技术社区

asciinema:基于命令行的终端会话记录器

asciinema.org:提供 API 供上传录像和展示的网站

javascript player:用于在 web 上播放录像的 js 播放器

asciinema 的安装和使用都非常简单,一起来看看吧

安装

asciinema 为 python 开发,可以直接通过 apt-get、yum 或者 pip 进行安装

# apt-get install asciinema

安装完成后查看版本

# asciinema --version asciinema 2.0.2

asciinema 有 v1 和 v2 两个版本,差异较大,咖啡君使用了 v2,以下所有内容也基于 v2 演示。

asciinema 有 5 个参数,分别为录制:rec,播放:play,以文件形式查看录制内容:cat,上传文件到 asciinema.org   网站:upload、asciinema.org 账号认证:auth,本文主要说明 rec 和 play 的使用。

录制

# asciinema rec ops-coffee.cast

有几个参数可以使用:

–stdin 表示启用标准输入录制,意思是通常情况下 linux 输入密码类的信息都不会显示,如果开启了这个选项,可以记录键盘输出的密码,但这个功能官方似乎还没有支持,加了后看不到效果。

–append 添加录制到已存在的文件中。

–raw 保存原始 STDOUT 输出,无需定时信息等。

–overwrite 如果文件已存在,则覆盖。

-c 要记录的命令,默认为 $SHELL。

-e 要捕获的环境变量列表,默认为 SHELL,TERM。

-t 后跟数字,指定录像的 title。

-i 后跟数字,设置录制时记录的最大空闲时间。

-y 所有提示都输入 yes

-q 静默模式,加了此参数在进入录制或者退出录制时都没有提示。

输入 exit 或按 ctrl+ D 组合键退出录制。

播放

# asciinema play ops-coffee.cast

有两个参数可以使用:

-s 后边跟数字,表示用几倍的速度来播放录像

-i 后边跟数字,表示在播放录像时空闲时间的最大秒数

在播放的过程中你可以通过空格来控制暂停或播放,也可以通过 ctrl+ c 组合键来退出播放,当你按空格键暂停时,可以通过. 号来逐帧显示接下来要播放的内容。

文件

asciinema 推荐的文件后缀是.cast,当然 linux 是不关心文件后缀的,你用什么都可以,推荐按规范使用.cast,文件内容大概如下

# 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 参数设置,title 录制时指定的 - t 参数设置。

接下来的都是固定格式的内容,实际上就是 IO 流信息

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

每一行都是由三部分组成的一个列表

第一部分为一个浮点数,表示输入输出这一行内容所花的时间

第二部分似乎是一个固定的字符串,没有找到说明做什么用的

第三部分就是具体的输入输出的内容

这个文件格式设计还是非常优雅的,开头 header 声明,后边具体内容,如果中途因为任何意外导致录像终止,也不会丢失整个录像,而且还可以 append   增加录像,这在需要长时间暂停录制时非常有用,更重要的是可以流式读取,几乎很少占用内存,不需要把整个录像文件都放在内存中,对长时间的录制播放更友好。

自动录制审计日志

如果你有经历过严格的 IT 审计,或者有用到堡垒机,就会知道操作过程是需要记录并加入审计的,如果你有因为不知道是谁操作了什么导致了数据被删而背锅的经历,就会知道对操作过程的记录有多么的重要,接下来以一个简单的案例来介绍 asciinema 有什么样的实用价值。

非常简单,只需要在 devuser 用户的家目录下添加.bash_profile 文件即可,内容如下:

$ 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 的原因是有可能系统会报错:

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

rec 命令进行录制时添加了 -q 参数,这样在进入或者退出时都不会有任何关于 asciinema 的提示,使用简单方便。

这样 devuser 用户每次登陆就会自动开启一个录像,如果需要审计或检查操作,只需要回放录像就可以了。

你可能会说 history 命令一样可以记录用户操作,asciinema 有什么优势呢?asciinema   不仅可以记录用户的输入,还可以记录系统的输出,也就是说 history 只能记录执行的命令,而 asciinema   还可以记录执行的结果,怎么样,是不是很方便,赶紧试试吧。

感谢各位的阅读!关于“Linux 怎么使用 Asciinema”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-07发表,共计2915字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)