linux 记录命令执行时间,Bash下显示history记录的命令的执行时间

编辑/etc/bashrc文件(或者/etc/profile),加入如下几行:

HISTFILESIZE=2000

HISTSIZE=2000

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

export HISTTIMEFORMAT

[root@as5 ~]# echo $HISTFILESIZE

1000

[root@as5 ~]# echo $HISTSIZE

1000

修改了默认的历史记录文件的行数,默认为1000行,立即命令的条数,默认也是1000,这里修改为2000,另外两条参数用语显示命令的执行时间,HISTTIMEFORMAT的格式你可以自己定义,定义成你想要的格式。具体格式可以参照date命令。例如用"%Y-%m-%d %H:%M:%S "格式按照我们中国人的时间格式,"%s " 按照unix时间戳的格式显示。

保存后退出,关闭当前shell,并重新登录

这个时候,在~/.bash_history文件中,就有记录命令执行的时间了,用cat命令显示这个文件,但是却会看到这个时间不是年月日显示的,而是按照unix time来显示:

[root@vz ~]# cat ~/.bash_history

#1184649982

touch 3

#1184649984

exit

#1184650148

history

[root@vz ~]#

这个时间叫做unix time,是从1970年1月1日临时起,到现在一共经过了多少秒,因为1969年是unix系统诞生,因此1970年1月1日被规定为unix系统诞生的时间的初始linux系统因为和unix系统的相似性,也完全采用这种方式来记录时间,为了按照人类的年月日方式来显示时间,执行history命令来查看,就可以了.这样即可查看到在什么时间执行了什么命令。

注意:本方法只对bash-3.0以上版本有效

执行rpm -q bash即可显示bash的版本

对于常见的linux AS4、AS5,都是有效的

在debian4.0 Release 3和CentOS5.2上都没有问题。

CentOS

[zhoulj@cent5 ~]$ bash --version

GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)

Copyright (C) 2005 Free Software Foundation, Inc.

[zhoulj@cent5 ~]$ history

1  2008-08-09 19:07:58 su -

2  2008-08-09 19:07:58 bash --version

3  2008-08-09 19:11:14 history

[zhoulj@cent5 ~]$

[zhoulj@cent5 ~]$ uname -a

Linux cent5.zljwxn.com 2.6.18-92.el5 #1 SMP Tue Jun 10 18:49:47 EDT 2008 i686 i686 i386 GNU/Linux

Debian

uname -a

Linux debian 2.6.18-6-686 #1 SMP Sun Feb 10 22:11:31 UTC 2008 i686 GNU/Linux

bash --version

GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)

Copyright (C) 2005 Free Software Foundation, Inc.

history |tail -n5

30  2008-08-09 07:22:20 bash --version

31  2008-08-09 07:22:22 history

32  2008-08-09 07:22:42 uname -a

33  2008-08-09 07:22:54 bash --version

34  2008-08-09 07:23:05 history |tail -n5

env|grep "HISTTIMEFORMAT"

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

su -

Password:

debian:~# history |tail -n5

128  2008-08-09 06:53:26 date +%N

129  2008-08-09 06:53:32 man date

130  2008-08-09 06:53:48 vi /etc/profile

131  2008-08-09 06:54:46 shutdown -h now

132  2008-08-09 07:25:26 history |tail -n5

debian:~#

debian:~# HISTTIMEFORMAT="%s "

debian:~# history |tail -n5

130  1218279228 vi /etc/profile

131  1218279286 shutdown -h now

132  1218281126 history |tail -n5

133  1218281288 HISTTIMEFORMAT="%s "

134  1218281294 history |tail -n5

另记:某linux服务器重启了,管理员说是机房reboot按钮重启的,机房说没有。看点记录大致就可以判断出来了

[root@as5 ~]# last

root     pts/0        172.16.1.100     Mon Feb  9 08:35   still logged in

reboot   system boot  2.6.9-55.ELsmp   Mon Feb  9 08:34          (00:06)

root     pts/0        172.16.1.100     Mon Feb  9 08:31 - down   (00:01)

后测试故意按电源按钮重启的结果

[root@as5 ~]# last

root     pts/0        172.16.1.100     Mon Feb  9 08:47   still logged in

reboot   system boot  2.6.9-55.ELsmp   Mon Feb  9 08:46          (00:01)

root     pts/0        172.16.1.100     Mon Feb  9 08:35 - crash  (00:10)

reboot   system boot  2.6.9-55.ELsmp   Mon Feb  9 08:34          (00:13)

root     pts/0        172.16.1.100     Mon Feb  9 08:31 - down   (00:01)

可以看到正常命令重启显示为down,而电源强制重启为crash。在结合日志信息就可以判断是什么情况了,当然也可以按照上述方法修改系统配置,让history记录具体的执行时间,这样更明白了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值