如何给history命令记录加上时间戳

时间:2020-12-21 14:31:50

在问题定位时,我们有时需要查看history命令记录,看是否有删除/移动文件、修改配置等误操作,为history命令添上时间记录,可便于分析、定位问题。
 
默认的情况下,history执行结果显示如下:
#  cat  -n /root/.bash_history
     1 #1336238988
     2 ifconfig
     3 #1336239591
     4 cd /var/adm/autoinstall/scripts/
以上输出中,数值1336238988表示自计算机计时元年——1970年1月1日至命令执行时经过的秒数。下面的ifconfig当然就是我们执行的命令。
有了1336238988这个数值,当然可以转换为一般容易读取的时间格式:
linux # date -d "1970-01-01 UTC 1336238988 seconds" "+%Y-%m-%d %T"
2012-05-06 01:29:48
 
更方便的方法是更改系统配置,使得history显示为以下格式:
linux # history | more
    1  2012-08-28 14:36:27   uname
    2  2012-08-01 17:06:43   telnet 10.71.171.145 1101
    3  2012-08-01 17:33:47   exit
    4  2012-08-28 14:36:27   uname
这样显示是不是清晰很多哩!具体配置方法如下:


背景信息
history命令中加入执行时间的记录,便于查看历史操作记录。


参考标准
cat  /etc/bash.bashrc |grep -e "HISTTIMEFORMAT" -e "HISTSIZE"
 配置文件中存在以下信息:


HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " 


export HISTTIMEFORMAT 


HISTSIZE=9999 


export HISTSIZE


或者“/etc/bash.bashrc”配置文件中存在以下信息:


export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " 


export HISTSIZE=9999


操作步骤
                              步骤 1     以root用户登录主机。
                              步骤 2     检查bash环境history命令中是否加入了执行时间。


cat /etc/bash.bashrc |grep -e "HISTTIMEFORMAT" -e "HISTSIZE"
例如,显示如下信息:
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " 


export HISTTIMEFORMAT 


HISTSIZE=9999 


export HISTSIZE
----结束


整改操作影响
可在线整改,对业务无影响。
处理措施
当检查结果不符合参考标准时,请处理方法如下:
                              步骤 1     以root用户登录主机。
                               步骤 2     修改“/etc/bash.bashrc”配置文件。
# vi   /etc/bash.bashrc


修改后的文件中存在以下内容:


HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " 
export HISTTIMEFORMAT 
HISTSIZE=9999 
export HISTSIZE


或者修改后的文件中存在以下内容:
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " 
export HISTSIZE=9999
----结束