对于系统管理员而言,history是一个很重要的命令,它能显示出之前在shell中执行过的命令,如果服务器发生异常,可以从这些命令中分析造成问题的原因。但是history显示的信息有局限性,默认保存最近的1000条命令,从历史信息中只能看到某个命令的执行有可能导致系统出了问题,对于进一步的追踪问题却无济于事。若能定位到是哪个用户在哪个时间在哪执行的命令,那将是多么愉快的一件事情!说了这么多,进入正题,centos中具体配置如下:
在/etc/profile中加入以下脚本
- #history
- USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
- HISTDIR=/usr/share/.history
- if [ -z $USER_IP ]
- then
- USER_IP=`hostname`
- fi
- if [ ! -d $HISTDIR ]
- then
- mkdir -p $HISTDIR
- chmod 777 $HISTDIR
- fi
- if [ ! -d $HISTDIR/${LOGNAME} ]
- then
- mkdir -p $HISTDIR/${LOGNAME}
- chmod 300 $HISTDIR/${LOGNAME}
- fi
- export HISTSIZE=4000
- DT=`date +%Y%m%d_%H%M%S`
- export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
- export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
- chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null
这段脚本的作用是把每个用户执行的命令记录在/usr/share/.history下以用户名命名的目录下,历史记录文件名根据用户ip和时间命名。打开/usr/share/.history目录会发现里边保存了之前记录的历史命令文件
在/etc/bashrc中加入几个环境变量,用于history命令显示用户ip等内容
- #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,显示效果如下:
原文地址:https://blog.csdn.net/tomspcc/article/details/52943702
分享到:
相关推荐
解决添加非root用户,VNC不能正常启动。本人实测操作文档,我采用centos7.2
CentOS Apache配置详解CentOS Apache配置详解
Centos6以上版本通用,SFTP的用户上传,下载,查看的配置,每条命令都是案例和说明。
centos命令大全手册
Centos7.9安装配置vsftpd
centOS完全配置手册 centOS完全配置手册 centOS完全配置手册 centOS完全配置手册 centOS完全配置手册
centos 配置本地yum源库,很多版本都是为其他linux配置yum源库的教程,我使用的是centos,所以给出一些我自己配置的本地yum源库,基于centos
阿里云CentOS配置全过程
centos配置openmeetings
CentOS5.3下vsftp虚拟用户配置实例,在CentOS5中可通用。
CentOS配置本地yum源,本文档详细介绍了CentOS配置本地yum源的操作步骤,最全
VMware上CentOS7配置本地网络,实现本地远程连接服务器,以及服务器访问互联网;家庭主机有线连接宽带,实现服务器与外网的互通。CentOS网络命令,网卡信息配置以及网关等配置
centos7配置命令
文档清晰的描述出Linux中centOs系统配置ftp的方法命令以及权限分配等
Centos7 IP配置
这是一个介绍在CentOS5.5上实现FTP服务及虚拟用户权限管理的服务器配置文档,由于虚拟用户不是系统用户,这样的FTP服务更加安全。
java通过ssh调用centos7指令,获取磁盘空间使用率、磁盘空间使用情况、网络使用情况,CPU使用率,内存使用率
CentOS安装FTP及配置用户.doc
CentOS配置smaba与Windows共享文件
CentOS dns配置