千家信息网

Linux怎么使用 Asciinema

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章给大家分享的是有关Linux怎么使用 Asciinema的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。asciinema 是一款开源免费的终端录制工具,它可以将命令
千家信息网最后更新 2025年01月23日Linux怎么使用 Asciinema

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

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

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

  1. 鸿蒙官方战略合作共建--HarmonyOS技术社区

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

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

  4. 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"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

内容 文件 录像 输入 参数 命令 输出 时间 数字 用户 终端 过程 审计 接下来 一行 信息 可以通过 版本 网站 部分 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 路由器软件开发工程师做什么 天津食堂系统一站式软件开发 数据库手机字段 厦门乐麦网络技术 吉林通讯软件开发价格参考价格 上蔡县网络安全进校园 win7创建vpn服务器 浙江告警日志审计服务器 数据库数据加密的意义 广东安卓软件开发需要多少钱 成都点赞多网络技术有限公司 毕业设计数据怎么导入数据库中 方舟手游服务器管理翻译 广东广电网络安全播出总结 网络安全中心李德文 河北小型软件开发优选企业 时序数据库有哪些专业函数 谷安网络安全工作 重庆永川果蔬软件开发 个人学习网络安全知识的收获 宁波小鲸网络技术 2021山东网络安全竞赛 服务器未升级到最新版本啥意思 网易版我的世界服务器能加模组吗 厚墨服务器地址是什么意思 软件开发要用到什么软件 国泰安数据库字段 专科软件开发报哪的学校 数据库 存储过程 函数 2008r2数据库备份
0