script
是一个非常炫酷的命令,它可以将终端的所有操作和输入输出录制下来,并通过scriptreplay
播放,是命令行版的"屏幕录像专家"
。非常实用,例如你想教很多人配置一个软件,可以在自己配置时,将过程录下来,然后发给别人自学,灰常的优雅!
一.安装
多数操作系统都默认安装了,Redhat/Fedora/CentOS
:
Host:BJ_Web_IP:252.97 User:root Dir:~$ >> yum install util-linux-ng或者Host:BJ_Web_IP:252.97 User:root Dir:~$ >> rpm -vih /mnt/Packages/util-linux-ng-2.17.2-12.24.el6.x86_64.rpm
二、录制和播放
2.1 录制
Host:BJ_Web_IP:252.97 User:root Dir:~$ >> script -t -a 2> /tmp/time.txt /tmp/record.txt
为了不影响操作,要使用错误重定向,在录制过程中,使用
Ctrl+d
或者exit
结束录制
简单说下命令的参数:
-t
是把时间数据输出到标准错误(standard error), 所以要用 2>/tmp/time.txt 把数据重定向到文件中, 一些情况下不需要重放,只要记录操作和输入输出,就可以不指定这个参数 -a
追加内容到文件,不会覆盖之前的记录 -q
安静模式,不会提示用户script在运行 -f
在每次写入后清屏,在配合管道使用时很有用 -c
这些非交互式的运行命令或脚本 在一些程序或脚本在后台运行时很有用
2.2 播放
Host:BJ_Web_IP:252.97 User:root Dir:~$ >> scriptreplay /tmp/time.txt /tmp/record.txt
2.3 记录用户操作
记录某个用户,在用户的~/.profile文件中加入:
Host:BJ_Web_IP:252.97 User:root Dir:~$ >> /usr/bin/script -qa /tmp/user_record
记录所有用户的操作,需将上述内容加在/etc/profile文件中。记录用户操作输出会比较多,回放非常耗时,所以通常不记录时间
2.4 实时广播操作
1、广播自己的操作给服务器上其它用户看,需要先创建一个管道:
Host:BJ_Web_IP:252.97 User:root Dir:~$ >> mkfifo /tmp/fifo
2、将scritp输出到管道:
Host:BJ_Web_IP:252.97 User:root Dir:~$ >> script -f /tmp/fifo
3、其它用户执行:
Host:BJ_Web_IP:252.97 User:root Dir:~$ >> cat /tmp/fifo
4、就能实时查看到操作和输入输出了(其他用户只能查看或者exit退出,不能操作命令)
时间: 2024-10-10 20:53:17