Linux服务器记录并查询历史操作记录

Linux服务器在使用过程中,经常会有除自己之外的其他人员使用。

一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整;所以误操作而造成重要的数据丢失,就很难查到是谁操作的

在这里我们通过脚本代码来实现记录所以用户的登录操作日志:
编辑/etc/profile文件:

vi /etc/profile

在文件末尾加入下面代码:

history
USER=`whoami`
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]; then
USER_IP=`hostname`
fi
if [ ! -d /var/log/history ]; then
mkdir /var/log/history
chmod 777 /var/log/history
fi
if [ ! -d /var/log/history/${LOGNAME} ]; then
mkdir /var/log/history/${LOGNAME}
chmod 300 /var/log/history/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +"%Y%m%d_%H:%M:%S"`
export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null

然后保存并退出,执行以下命令,使得编写的配置生效。

source /etc/profile

注释: /var/log/history这是记录日志的存放位置,可以自定义。
在/var/log/history下会以每个用户为名新建一个文件夹,如果没有history就先新加目录,然后设置文件权限
Linux服务器记录并查询历史操作记录_第1张图片

 效果图:

Linux服务器记录并查询历史操作记录_第2张图片

你可能感兴趣的:(Linux)