2014-07-10 37 views
2

我想看看誰執行什麼命令,什麼時候執行。 歷史命令只記錄帶有時間戳的命令。 我所檢查的人(3)歷史上,我可以看到:如何查看每個用戶的linux命令執行時間

typedef void * histdata_t; 

    typedef struct _hist_entry { 
    char *line; 
    char *timestamp; 
    histdata_t data; 
    } HIST_ENTRY; 

是這意味着有辦法看到命令exectue時間?

而且我發現別人也正在尋找一些類似的解決方案:

Linux history of all commands executed during whole day, everyday

http://www.linuxquestions.org/questions/linux-server-73/recording-all-the-command-history-in-a-log-4175484336/

https://stackoverflow.com/questions/24279040/is-there-a-way-to-get-user-executed-commands-using-linux-c

他們正在尋找解決方案來記錄時間。 但我追求的是命令執行時間,用戶在過去的時間,而不是將來。當你通話記錄,時間戳啓用

export HISTTIMEFORMAT='%F %T ' 

然後:

回答

1

隨着歷史命令,您可以啓用時間戳像這樣。

實施例:

1754 2014-07-10 10:12:24 sed -i '0,/port \([0-9]*\)/{s/port \([0-9]*\)/port 7777/}' test.txt 
1755 2014-07-10 10:12:26 cat test.txt 
1756 2014-07-10 10:16:54 export HISTTIMEFORMAT='%F %T ' 
1757 2014-07-10 10:16:55 history 
[email protected]:~$ 
+0

感謝@ wbt11a。這解決了我的問題。但我有更多的問題:歷史只列出了一些最近的命令,我幾天前能夠看到命令服務器:$ history 997 2014-07-11 10:50:58 df -h它是在997之前。我可以跟蹤更多? – no7dw

+0

,但是所有的命令都是在過去的同一時間記錄的。 1984 2014-07-11 10:50:58 varnishlog 1985 2014-07-11 10:50:58 ps -ef | grep redis 1986 2014-07-11 10:50:58 vim /etc/redis/6380.conf 1987 2014-07-11 10:50:58 redis-cli。全部在10:50:58 – no7dw

相關問題