react 前端框架如何驱动企业数字化转型与创新发展
1193
2022-09-24
Bash下显示history记录的命令的执行时间
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 miclesvic~$uname -a Linux debian 2.6.18-6-686 #1 SMP Sun Feb 10 22:11:31 UTC 2008 i686 GNU/Linux miclesvic~$ miclesvic~$ bash --version GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc. miclesvic~$ miclesvic~$ 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 miclesvic~$
miclesvic~$env|grep "HISTTIMEFORMAT" HISTTIMEFORMAT=%Y-%m-%d %H:%M:%S miclesvic~$ 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 miclesvic~$ miclesvic~$ HISTTIMEFORMAT="%s " miclesvic~$ 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记录具体的执行时间,这样更明白了。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~