Linux下使用history
命令,记录用户登录系统之后的操作记录。
首先
vi /etc/profile
然后,在末尾加上
# history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}' |sed -e 's/[()]//g'` #获取用户ip
HISTORY_DIR=/var/log/.history # 日志记录目录
if [ -z $USER_IP ] //如果ip不存在
then
USER_IP=`hostname`
fi
if [ ! -d $HISTORY_DIR ] #如果日志目录不存在
then
mkdir -p $HISTORY_DIR
chmod 777 $HISTORY_DIR
fi
if [ ! -d $HISTORY_DIR/${LOGNAME} ] # 如果日志用户目录不存在
then
mkdir -p $HISTORY_DIR/${LOGNAME}
chmod 300 $HISTORY_DIR/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +" %Y%m%d_%H%M%S"`
export HISTFILE="$HISTORY_DIR/${LOGNAME}/${USER_IP}.history.$DT" #导出文件名
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null # 2>/dev/null 如果命令出错则删除文件
如果普通用户登录,没有目录则会报没权限的创建目录的错误,手动创建个目录即可
mkdir -p /var/log/.history
chmod 777 /var/log/.history
这样就OK了。