history持久化
cat /etc/profile.d/history.sh
## 获取当前登录用户ip
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ -z $USER_IP ];then
USER_IP="NO_client_IP"
fi
HISTORY_DIR=/opt/hislog
## 判断文件夹是否存在 不存在则创建
if [ ! -d $HISTORY_DIR ];then
sudo mkdir $HISTORY_DIR
sudo chmod 777 $HISTORY_DIR
fi
## 为用户创建目录
if [ ! -d $HISTORY_DIR/${LOGNAME} ];then
mkdir $HISTORY_DIR/${LOGNAME}
chmod 300 $HISTORY_DIR/${LOGNAME}
fi
## 写入的文件名,使用同一个名字否则history无法展示历史记录
export HISTFILE="$HISTORY_DIR/${LOGNAME}/history"
## 使用追加模式写入
shopt -s histappend
## 每执行一次写入文件
PROMPT_COMMAND="history -a"
## 设置history命令格式
HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [$USER_IP] [$(whoami)] "
## history文件保存的行数
HISTFILESIZE=50000
## history命令输出的行数
HISTSIZE=4096
注意:
HISTORY_DIR
目录如果不存在 且 下次登录用户没有sudo
权限,则会报错。
原来的history
记录不会在history
命令显示,但是可以通过cat ~/.bash_history
来查看。