history保存用户操作日志,登陆时间,防止会话退出时覆盖

linux系统history记录保存用户操作日志,登陆时间,防止会话退出时覆盖


以下是代码:
#说明: /etc/profile 中结尾添加如果下指令
#保存并执行如下使之生效:source /etc/profile

#history
#HISTFILESIZE:表示文件的最大大小,默认也是1000,可以自行设置;
export HISTFILESIZE=100000

#HISTSIZE:表示最多可以存多少条命令(先进先出),可以在/etc/bashrc和~/.bash_profile里面设置(1000000不会报错)。
export HISTSIZE=10000

#HISTTIMEFORMAT(hist-time-format):记录命令执行的时间格式(存到HISTFILE的为%s的格式),如果不设置此变量HISTFILE文件中将不会记录命令执行的时间戳;
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S- U S E R I P USER_IP- USER]"

#为防止会话退出时覆盖其他会话写到HISTFILE的内容,可以在/etc/bashrc中加入以下内容:
shopt -s histappend

#每次条命令执行完后立即写入HISTFILE,无需等待退出会话。可以在bashrc中加入以下内容(PROMPT_COMMAND即命令行提示符):
export PROMPT_COMMAND=“history -a”

#获取用户IP
USER_IP=who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'
#日志生成目录
HISTDIR=/var/log/history
if [ -z $USER_IP ]
then
USER_IP=hostname
fi
if [ ! -d $HISTDIR ]
then
mkdir -p $HISTDIR
chmod 777 $HISTDIR
fi
if [ ! -d H I S T D I R / HISTDIR/ {LOGNAME} ]
then
mkdir -p H I S T D I R / HISTDIR/ {LOGNAME}

chmod 300 H I S T D I R / HISTDIR/ {LOGNAME}
fi
DT=date +%Y%m%d_%H%M%S
export

#HISTFILE:设置历史文件名,默认为~/.bash_history,如果想要另外指定地方可以手工设置;
HISTFILE=" H I S T D I R / HISTDIR/ {LOGNAME}/ U S E R I P {USER_IP} {LOGNAME}.history.$DT"

#生成日志目录
chmod 600 H I S T D I R / HISTDIR/ {LOGNAME}/history 2>/dev/null

#生成目录效果在这里插入图片描述#文件名生成效果在这里插入图片描述

#查看生成文件在这里插入图片描述

发布了8 篇原创文章 · 获赞 3 · 访问量 113

猜你喜欢

转载自blog.csdn.net/weixin_39096855/article/details/105635338