history可以显示出之前在 shell 中运行的命令,但是如果需要查什么时候什么人执行了什么命令似乎还是非常吃力,因为你即使查到了一条你认为不应该执行的命令,你也不能准确的说出这条命令是谁来执行的,更不能精确的指出这条命令就是事故发生的时候执行的,怎么办? shterm? 这个对于一般中小型公司来说似乎还是非常昂贵的,怎么办?
设置很简单:
[dbadmin@JR-ZR01-TEST ~]$ history
1 ls
2 pwd
3 iptables-save
4 history
5 unset HISTTIMEFORMAT
6 history
设置方法:
[root@MO-ZR01-WEB ~]# export HISTTIMEFORMAT="%F %T `whoami` "
[root@MO-ZR01-WEB ~]# echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile
[dbadmin@JR-ZR01-TEST ~]$ history
1 2008-06-20 05:36:14 dbadmin ls
2 2008-06-20 05:36:16 dbadmin pwd
3 2008-06-20 05:36:19 dbadmin iptables-save
4 2008-06-20 05:36:23 dbadmin history
5 2008-06-20 05:36:31 dbadmin unset HISTTIMEFORMAT
6 2008-06-20 05:36:32 dbadmin history
7 2008-06-20 05:37:19 dbadmin export HISTTIMEFORMAT="%F %T `whoami` "
8 2008-06-20 05:37:20 dbadmin history
HISTTIMEFORMAT 的格式就是 strftime 函数的格式,比如上面的 "%F %T",%F 表示显示出 Y-M-D 格式的日期,%T 表示显示出 H-M-S 这样格式的时间。
更多格式参考 man strftime。