script 和 scriptreplay两个命令在 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