CentOS系统优化

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 来查看。

上一篇:ffmpeg学习日记21-缓存AVPacket数据


下一篇:关于Shell的一些面试题