视频加载失败

【Linux】记录命令操作

501 字
3 分钟
【Linux】记录命令操作
【Linux】记录命令操作

0x00#

在Linux上完整记录屏幕上的输入命令和输出结果,效果和屏幕录制差不多不过是记录命令行的。

主要用到script和scriptreplay这两个命令,一般在linux发行版都默认安装了。

0x01 录制与播放#

录制#

Terminal window
script -t 2>time.file -a scriptfile

其中time.file是时序记录文件,记录执行命令的时间;scriptfile是命令执行记录文件,记录所执行的命令。这些记录文件的名字可以自定义。

执行这句命令后,接下来的所有操作都会被记录下来。

加上-q ,--quiet参数可以是script一静默模式运行,不显示script启动和exit退出的命令,用户可以在完全察觉不到的情况下记录。

Terminal window
script -q -t 2>time.file -a scriptfile

要使script停止下来,可以按下组合键Ctrl+D结束记录,也可以执行exit结束记录。

播放#

Terminal window
scriptreplay time.file scriptfile

时序文件在前,命令文件在后。

添加参数-d, --divisor <num>可以调整播放速度的倍数(大于1:加快;小于1大于0:放慢) 加快10倍速播放:

Terminal window
scriptreplay -d 10 time.file scriptfile

0x02 同步演示#

同步演示可以做到类似“直播”的效果。 使用参数-f,--flush在每次操作后立即刷新缓存进行实时写入文件。 使用端:

Terminal window
script -f demo

演示端:

Terminal window
scriptreplay -f demo

有些版本的scriptreplay没有-f参数,但可以使用tail -f来代替scriptreplay。

0x03 录制命令执行过程#

使用参数-c,--command直接执行命令,不过执行的命令不是交互式的shell

Terminal window
script -qa log.out -c "echo hello"

0x04 用户登录后自动触发实时监控#

这样可以监控用户登录后的操作。 原理就是让script命令在用户登录后自动运行。

Terminal window
#建立记录文件夹
mkdir -p /var/log/user_record
#编辑启动文件
nano /etc/profile

在profile文件末尾添加

Terminal window
script -t -f -q 2>/var/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.time -a /var/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.his
if [ "$SHLVL" = 1 ]; then
exit
fi

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
【Linux】记录命令操作
https://rehtt.com/posts/171/
作者
Rehtt
发布于
2019-07-10
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Rehtt
Hello, I'm Rehtt.
公告
欢迎来到我的博客!
分类
标签
最新动态
站点统计
文章
150
分类
17
标签
73
总字数
67,772
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录