CentOS7 配置history记录用户所执行过的命令


原文:

https://www.jianshu.com/p/604c185e3f84

我常常在想CentOS系统中有没有一种命令,能定位到是哪个用户在哪个时间在哪执行的命令。后来我只找到 history 命令。history是一个很重要的命令,它能显示出之前在shell中执行过的命令,如果服务器发生异常,可以从这些命令中分析造成问题的原因。但是history显示的信息有局限性,默认保存最近的1000条命令,从历史信息中只能看到某个命令的执行有可能导致系统出了问题,对于进一步的追踪问题却无济于事。
??那我为啥还要说这个命令呢?其实我们可以根据history命令进行一系列的修改,使其能达到我们的需求。废话不多说。直接开始。CentOS中具体配置如下:

  • 在/etc/profile中加入以下脚本
#history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` 
HISTFILESIZE=4000
HISTSIZE=4000
HISTTIMEFORMAT="%F %T ${USER_IP} `whoami` "
export HISTTIMEFORMAT

在终端中输入 history,显示效果如下(注:下面显示内容,是执行生效命令之后才会显示如下的。):

  image.png
  • 脚本的作用:
    显示时间戳,ip,用户名等信息。

生效

把代码写入脚本文件之后,需要使其脚本生效。有两种方式:

  • 重启服务器
  • 执行一下命令即可
[root@localhost ~]# source /etc/profile
[root@localhost ~]# source /etc/bashrc 


作者:楍跑的鸟
链接:https://www.jianshu.com/p/604c185e3f84
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。