Script

scriptscriptreplay两个命令在 Linux 发行版中都有默认安装。

录播屏幕操作:

# script -t 2>  time.file -a scriptfile
time.file是时序记录文件,记录了几秒执行的命令;
scriptfile是命令执行记录文件,记录下执行是哪些命令,这两个文件名称都可以自定义。
# script -q -t 2> time.file -a scriptfile
-q, - -quiet 参数可以使script命令以静默模式运行,不显示script启动和exit的命令,用户可以完全察觉不到在录屏。
按下按下组合键 Ctrl+D 结束录制,执行exit命令也行。
# scriptreplay -d 10 time.file scriptfile
添加这个参数-d, –divisor number 可以调整播放速度的倍数(可以是小数:放慢)。
scriptfile文件记录了我每间隔1秒执行一个date命令的操作,现在加速10倍来播放看看效果(可惜有的版本scriptreplay命令没有-d这个参数)。

同步演示:

使用端:
# script -f demo
-f, - -flush 每次操作后都立即刷新缓存。如果不设置这个选项,则不会实时写入文件,这个功能
演示端:
# scriptreplay -f demo

录制脚本执行过程:

# script -qa "file.out" -c "/root/hello.sh" 
# cat file.out 
-c, - -command 可以直接执行命令,而非是交互式的shell,可以直接传入一个脚本

自动触发监控用户登陆的操作与实时监控:

# mkdir -p /var/log/user_record
# vi /etc/profile

# 在/etc/prifile文件追加登陆时自动记录
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
if [ $UID -ge 0 ]; then
        exec /usr/bin/script -t 2>/var/log/script/$USER-$UID-`date +%Y%m%d%H%M`.date -a -f -q /var/log/script/$USER-$UID-`date +%Y%m%d%H%M`.log
fi
原文地址:https://www.cnblogs.com/tianyuanchen/p/11253491.html