script 是一个神奇命令,script 能够将终端的会话过程录制下来,然后使用 scriptreplay 就可以将其录制的结果播放给他人观看。script 的好处就在于你在终端中的所有操作、敲过的命令和打印出的结果它都可以原原本本地进行录制。可以应用于教学、演示、审计。一般来说,script 和 scriptreplay 在 Linux 发行版中都有默认安装。script -t 2>demo.time -a demo.his 开始录像,ctrl+d或者exit结束scriptreplay demo.time demo.his 回放两个配置文件被当做script命令的参数。这两个文件可以随便命名,这里用demo.time和demo.his。其中demo.time用于存储时序信息,描述每一个指令在何时运行;demo.his用于存储命令信息输出。-t选项用于将时序数据导入stderr。2>用于stderr重定向到demo.time。参数:-t 指明输出录制的时间数据-f 如果需要在输出到日志文件的同时,也可以查看日志文件的内容,可以使用 -f 参数。PS:可以用于教学,两个命令行接-f可以实时演示-a 输出录制的文件,在现有内容上追加新的内容-q 可以使script命令以静默模式运行利用script记录某人行为vi ~/.profile
script -t -f -q 2>$USER.time -a $USER.his应用:1、演示教学第一个命令框script -f demo其他命令框scriptreplay -f demo可以实现实时同步演示2、服务器安全审计直接操作线上的服务器有很大隐患,所以一般都是通过登录跳板机,然后连接线上服务器,跳板机可以访问控制和安全审计,查看记录每个人对线上服务器的操作用户家目录下,修改环境变量,使得用户登录就会触发录像vi ~/.profile
script -t -f -q 2>/wow/$USER-$UID-`date +%Y%m%d%H%M%S`.time -a /wow/$USER-$UID-`date +%Y%m%d%H%M%S`.his这样搞完后,发现有一个问题是每次退出,我习惯Ctrl+D,然后按第一遍停止录像,第二遍才能用户退出,如何解决在后面添加if [ "$SHLVL" = 1 ]; then
exitfi这样就可以一遍Ctrl+D停止录像和退出用户。播放必须得时许信息在前,命令信息在后。
本文出自 “王小酸” 博客,谢绝转载!