Linux命令记录配置

前言

记录shell命令行执行的所有命令,以备后续查询。

创建记录文件存放路径

sudo mkdir /var/history
#给目录/var/history赋予所有人的写权限 ——>-
sudo chmod a+w $HISTDIR
# 给目录/var/history赋予特殊属性——>
sudo chattr +a /var/history

向shell配置文件中添加配置,一般添加在/etc/目录下的shell相关配置中

配置如下

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/var/history

if [ -z $USER_IP ]
    #如果string为空
then
    USER_IP=`hostname`
fi

if [ ! -d $HISTDIR ]
#如果目录为空
then
    mkdir -p  $HISTDIR
    #给目录/var/history赋予所有人的写权限 ——>-
    chmod a+w $HISTDIR
    # 给目录/var/history赋予特殊属性——>
    chattr +a /var/history
fi

readonly DT=$(date +%F)
readonly HISTFILE=$HISTDIR/$USER-$UID-$DT.log      #设置保存命令历史记录的路径及文件名称
readonly HISTSIZE=null
readonly HISTFILESIZE=500000
readonly HISTTIMEFORMAT="%F %T `who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`  `whoami ` "
shopt -s histappend                                                         #一个用户可以>同时打开多个终端
readonly PROMPT_COMMAND="history -a"             #实时追加当前历史命令到history文件
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi
export HISTSIZE HISTCONTROL

一个完善晋级版本

将下面的文件写入 /etc/bashrc

HISTDIR=/var/history

if [ ! -d $HISTDIR ]
#如果目录为空
then
    mkdir -p  $HISTDIR
    #给目录/var/history赋予所有人的写权限 ——>-
    chmod a+w $HISTDIR
    # 给目录/var/history赋予特殊属性——>
    chattr +a $HISTDIR
fi

readonly DT=$(date +%F)
readonly HISTORY_FILE=$HISTDIR/$USER-$UID-$DT.log      #设置保存命令历史记录的路径及文件名称
readonly PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i 2>/dev/null |awk "{print \$1\" \"\$2\" \"\$5}"| sed -e "s/[()]//g")  #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE'

版权声明:除特别注明外,本站所有文章均为王晨曦个人站点原创

转载请注明:出处来自王晨曦个人站点 » Linux命令记录配置

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注