如何查看每个用户的linux命令执行时间

时间:2014-07-10 14:10:31

标签: linux

我想看看执行什么命令以及何时执行。 历史命令仅记录带有时间戳的命令。 我检查的是人(3)的历史,我可以看到:

typedef void * histdata_t;

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

这是否意味着有办法查看命令执行时间?

此外,我发现其他人也在寻找类似的解决方案:

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

他们正在寻找记录时间的解决方案。 但我所追求的是命令执行时间用户在过去的时间,而不是将来。

1 个答案:

答案 0 :(得分:1)

使用history命令,您可以启用时间戳,如下所示:

export HISTTIMEFORMAT='%F %T  '

然后,当您调用历史记录时,将启用时间戳。

示例:

 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
 me@owncloud:~$