Posted on 2010-02-04 14:26
Prayer 閱讀(3285)
評論(0) 編輯 收藏 引用 所屬分類:
Shell 、
LINUX/UNIX/AIX
AIX下的ksh缺省會將所有執行的命令歷史記錄在/.sh_history文件中,但是一直以來,該文件中只記錄命令本身而不記錄命令執行的時間。
在 AIX5.3 中支持在 .sh_history 中記錄時間,具體實現方式如下:
1. 需要在環境變量中增加一個變量:EXTENDED_HISTORY=ON (注意,一定是大寫ON,小寫無效)
2. 此時 view .sh_history 文件可以發現記錄的命令是如下格式,其中被 #? 括起來的部分就是命令執行的時間戳,該數值是從1970年到當時的秒數。
env | grep HIS #?1184585109#?
ls #?1184585111#?
fc -t #?1184585117#?
vi /.sh_history #?1184585179#?
3. 為了換算成我們可以閱讀的時間,可以使用 perl 命令 perl -e 'print scalar localtime 1184585179'。當然更直接和簡單的方法是使用 fc -t 命令來顯示命令歷史,其輸出如下:
1192 2007/07/16 12:25:09 :: env | grep HIS
1193 2007/07/16 12:25:11 :: ls
1194 2007/07/16 12:25:17 :: fc -t
1197 2007/07/16 12:26:19 :: vi /.sh_history
4. 如果要對所有用戶記錄命令時間,建議更改 /etc/profile 文件,增加如下兩行:
export EXTENDED_HISTORY=ON
export HISTSIZE=512 (另一個關于命令歷史的環境變量,用于定義最多保存的命令條數,可根據需要修改)
增加后用戶重新登錄后即生效,不需要重啟
另外,轉一個beginner的帖子,也是關于用戶執行命令的具體時間這個問題的探討
http://www.cublog.cn/u/739/showart.php?id=436897