2014-07-10 34 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

相关问题