解决问题:linux script 命令正有如此强大的功能。满足我们需求。script记录终端会话。
操作步骤:
在末尾添加:
if [ $UID -ge 1000 ]; then
exec /usr/bin/script -t 2>/mnt/log/script/USER-UID-`date +%Y%m%d%H%M`.log
fi
这样用户登陆后执行的操作都会记录到/mnt/log/script/*.log(目录自己根据服务器目录定义)里,我们可以通过more或vi来进行查看。
我这里是把用户ID 大于1000的都记录下操作,你可以重新登录用户,操作一些命令,查看生成的文件。
另外,/mnt/log/script 目录需要其他用户有写的权限;
chmod 743 /mnt/log/script
可以看到上图,对应的用户登录,会分别生成一个log和date为后缀的文件。log记录了操作,可以通过date文件 回放操作。通过scriptreplay 来回放
注意:先是 “时间文件”,然后是“命令文件”,不要颠倒。 以上,就完成了记录用户的所有操作记录。并且还有回放功能,像录像一样,非常方便查找问题。