Loading... #0x00 在Linux上完整记录屏幕上的输入命令和输出结果,效果和屏幕录制差不多不过是记录命令行的。 主要用到`script`和`scriptreplay`这两个命令,一般在linux发行版都默认安装了。 #0x01 录制与播放 ##录制 ```shell script -t 2>time.file -a scriptfile ``` 其中`time.file`是时序记录文件,记录执行命令的时间;`scriptfile`是命令执行记录文件,记录所执行的命令。这些记录文件的名字可以自定义。 执行这句命令后,接下来的所有操作都会被记录下来。 加上`-q ,--quiet`参数可以是script一静默模式运行,不显示script启动和exit退出的命令,用户可以在完全察觉不到的情况下记录。 ```shell script -q -t 2>time.file -a scriptfile ``` 要使script停止下来,可以按下组合键`Ctrl+D`结束记录,也可以执行`exit`结束记录。 ##播放 ```shell scriptreplay time.file scriptfile ``` 时序文件在前,命令文件在后。 添加参数`-d, --divisor <num>`可以调整播放速度的倍数(大于1:加快;小于1大于0:放慢) 加快10倍速播放: ```shell scriptreplay -d 10 time.file scriptfile ``` #0x02 同步演示 同步演示可以做到类似“直播”的效果。 使用参数`-f,--flush`在每次操作后立即刷新缓存进行实时写入文件。 使用端: ```shell script -f demo ``` 演示端: ```shell scriptreplay -f demo ``` 有些版本的`scriptreplay`没有`-f`参数,但可以使用`tail -f`来代替`scriptreplay`。 #0x03 录制命令执行过程 使用参数`-c,--command`直接执行命令,不过执行的命令不是交互式的shell ```shell script -qa log.out -c "echo hello" ``` #0x04 用户登录后自动触发实时监控 这样可以监控用户登录后的操作。 原理就是让`script`命令在用户登录后自动运行。 ```shell #建立记录文件夹 mkdir -p /var/log/user_record #编辑启动文件 nano /etc/profile ``` 在`profile`文件末尾添加 ```shell 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 ``` Last modification:October 24, 2019 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 0 如果觉得我的文章对你有用,请随意赞赏