cckj 2008-10-19 22:58
在命令 history 中显示时间戳
转自: [url=http://linux.byexamples.com/archives/467/list-command-line-history-with-timestamp/]http://linux.byexamples.com/arch ... ory-with-timestamp/[/url]
history 是一条非常实用的 shell 命令,可以显示出之前在 shell 中运行的命令,配合 last 显示之前登录的用户,就可以追溯是哪个用户执行了某些命令。
last
...
mysurface tty7 :[color=#cc66cc]0[/color] Mon Oct [color=#cc66cc]6[/color] [color=#cc66cc]20[/color]:[color=#cc66cc]07[/color] - down [color=#66cc66]([/color][color=#cc66cc]00[/color]:[color=#cc66cc]00[/color][color=#66cc66])[/color]
reboot system boot [color=#cc66cc]2.6[/color][color=#cc66cc].24[/color][color=#cc66cc].4[/color][color=#cc66cc]-64[/color].fc8 Mon Oct [color=#cc66cc]6[/color] [color=#cc66cc]20[/color]:[color=#cc66cc]06[/color] [color=#66cc66]([/color][color=#cc66cc]00[/color]:[color=#cc66cc]00[/color][color=#66cc66])[/color]
mysurface pts/[color=#cc66cc]8[/color] [color=#cc66cc]10.168[/color][color=#cc66cc].28[/color][color=#cc66cc].44[/color] Mon Oct [color=#cc66cc]6[/color] [color=#cc66cc]17[/color]:[color=#cc66cc]42[/color] - down [color=#66cc66]([/color][color=#cc66cc]01[/color]:[color=#cc66cc]58[/color][color=#66cc66])[/color]
mysurface pts/[color=#cc66cc]7[/color] :[color=#cc66cc]0.0[/color] Mon Oct [color=#cc66cc]6[/color] [color=#cc66cc]17[/color]:[color=#cc66cc]41[/color] - [color=#cc66cc]19[/color]:[color=#cc66cc]40[/color] [color=#66cc66]([/color][color=#cc66cc]01[/color]:[color=#cc66cc]59[/color][color=#66cc66])[/color]
mysurface pts/[color=#cc66cc]6[/color] :[color=#cc66cc]0.0[/color] Mon Oct [color=#cc66cc]6[/color] [color=#cc66cc]17[/color]:[color=#cc66cc]27[/color] - [color=#cc66cc]19[/color]:[color=#cc66cc]40[/color] [color=#66cc66]([/color][color=#cc66cc]02[/color]:[color=#cc66cc]13[/color][color=#66cc66])[/color]
mysurface pts/[color=#cc66cc]5[/color] :[color=#cc66cc]0.0[/color] Mon Oct [color=#cc66cc]6[/color] [color=#cc66cc]17[/color]:[color=#cc66cc]27[/color] - [color=#cc66cc]19[/color]:[color=#cc66cc]40[/color] [color=#66cc66]([/color][color=#cc66cc]02[/color]:[color=#cc66cc]13[/color][color=#66cc66])[/color]
mysurface pts/[color=#cc66cc]5[/color] :[color=#cc66cc]0.0[/color] Mon Oct [color=#cc66cc]6[/color] [color=#cc66cc]15[/color]:[color=#cc66cc]52[/color] - [color=#cc66cc]15[/color]:[color=#cc66cc]59[/color] [color=#66cc66]([/color][color=#cc66cc]00[/color]:[color=#cc66cc]07[/color][color=#66cc66])[/color]
...
不过默认下,history 并不记录命令的执行时间,分析起来很困难。这时候可以配置
[b]HISTTIMEFORMAT[/b] 环境变量,给 history 记录添加上时间戳:
[code]export HISTTIMEFORMAT="%F %T "[/code]
...
[color=#cc66cc]994[/color] [color=#cc66cc]2008[/color][color=#cc66cc]-10[/color][color=#cc66cc]-16[/color] [color=#cc66cc]02[/color]:[color=#cc66cc]27[/color]:[color=#cc66cc]40[/color] [color=#006600]exit[/color]
[color=#cc66cc]995[/color] [color=#cc66cc]2008[/color][color=#cc66cc]-10[/color][color=#cc66cc]-16[/color] [color=#cc66cc]01[/color]:[color=#cc66cc]12[/color]:[color=#cc66cc]20[/color] iptables -nL
[color=#cc66cc]996[/color] [color=#cc66cc]2008[/color][color=#cc66cc]-10[/color][color=#cc66cc]-16[/color] [color=#cc66cc]01[/color]:[color=#cc66cc]47[/color]:[color=#cc66cc]46[/color] vi .bash_profile
[color=#cc66cc]997[/color] [color=#cc66cc]2008[/color][color=#cc66cc]-10[/color][color=#cc66cc]-16[/color] [color=#cc66cc]01[/color]:[color=#cc66cc]47[/color]:[color=#cc66cc]55[/color] [color=#006600]history[/color]
[color=#cc66cc]998[/color] [color=#cc66cc]2008[/color][color=#cc66cc]-10[/color][color=#cc66cc]-16[/color] [color=#cc66cc]01[/color]:[color=#cc66cc]48[/color]:[color=#cc66cc]03[/color] . .bash_profile
[color=#cc66cc]999[/color] [color=#cc66cc]2008[/color][color=#cc66cc]-10[/color][color=#cc66cc]-16[/color] [color=#cc66cc]01[/color]:[color=#cc66cc]48[/color]:[color=#cc66cc]04[/color] [color=#006600]history[/color]
[color=#cc66cc]1000[/color] [color=#cc66cc]2008[/color][color=#cc66cc]-10[/color][color=#cc66cc]-16[/color] [color=#cc66cc]01[/color]:[color=#cc66cc]48[/color]:[color=#cc66cc]09[/color] [color=#006600]exit[/color]
[color=#cc66cc]1001[/color] [color=#cc66cc]2008[/color][color=#cc66cc]-10[/color][color=#cc66cc]-16[/color] [color=#cc66cc]02[/color]:[color=#cc66cc]27[/color]:[color=#cc66cc]43[/color] [color=#006600]history[/color]
...
把上面的 export 命令加入到 ~/.bashrc 或者 ~/.bash_profile 中即可在登录后自动开启 history 时间戳了~
其实 HISTTIMEFORMAT 的格式就是 strftime 函数的格式,比如上面的 "%F %T",%F 表示显示出 Y-M-D 格式的日期,%T 表示显示出 H-M-S 这样格式的时间。更多的格式,可以参考 [b]man strftime[/b]。