linux下Script小计
前言:测试服务器直接暴露给研发、测试多角色多人员,使用script可以方便记录各人员操作日志;交付产品,客户服务器不会直接提供给运维人员使用,需要提前录制操作步骤,从而在生产环境中一键执行。
1. 安装
验证环境为 CentOS Linux release 7.2.1511 (Core),已经自带了script命令。如果不可用可以自行安装:
[root@it-no ~]#
[root@it-no ~]# whereis script
script: /usr/bin/script /usr/share/man/man1/script.1.gz
[root@it-no ~]#
[root@it-no ~]# rpm -qf /usr/bin/script
util-linux-2.23.2-63.el7.x86_64
[root@it-no ~]#
使用下方命令安装即可(安装完成可以使用script录制屏幕交互,同时也会安装scriptreplay用于演示命令交互):
yum install util-linux* -y
下面查看命令用法:
[root@it-no ~]#
[root@it-no ~]# script --help
Usage:
script [options] [file]
Options:
-a, --append append the output
-c, --command <command> run command rather than interactive shell
-e, --return return exit code of the child process
-f, --flush run flush after each write
--force use output file even when it is a link
-q, --quiet be quiet
-t, --timing[=<file>] output timing data to stderr (or to FILE)
-V, --version output version information and exit
-h, --help display this help and exit
[root@it-no ~]#
- 说明:
- -t 记录时间戳
- -a 追加模式添加进日志文件
- -f 每次写入文件刷新 (可以通过tailf xxx.log 实时查看某用户的操作信息)
- -q 日志记录不提醒用户 (若不加此参数,用户登录后会提示操作被记录)
2. 配置监控
把下方配置信息添加至环境变量 /etc/profile
if [ $UID -ge 0 ] ; then
exec /usr/bin/script -t 2>/opt/logs/scripts/$USER-$UID-`date +%Y%m%d%H%M`.date -a -f -q /opt/logs/scripts/$USER-$UID-`date +%Y%m%d%H%M`.log
fi
使环境变量生效
source /etc/profile
- 说明:
- 若监控root以外用户,需修改为 $UID -ge 500
- 若只监控某一用户,只需要把上一步骤修改后的内容添加至该用户家目录下的~/.bashrc下即可
3. 使用
查看当前用户操作日志记录位置
[root@it-no ~]# w
15:16:04 up 140 days, 23:30, 4 users, load average: 0.00, 0.01, 0.07
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.3.122.111 14:09 4.00s 0.20s 0.08s /usr/bin/script -t -a -f -q /opt/logs/scripts/root-0-202101051409.log
root pts/2 14:09 4.00s 0.22s 0.00s w
[root@it-no ~]#
- 可直接使用cat、more、less、tailf等命令查看操作日志
- 可使用 scriptreplay file.date file.log 按时间顺序播放录制的内容
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
· 重磅发布!DeepSeek 微调秘籍揭秘,一键解锁升级版全家桶,AI 玩家必备神器!