GNU/Linux 机器上发出的最后一条命令

GNU/Linux 机器上发出的最后一条命令

有人在我当地的 LUG 邮件列表中询问是否有任何方法可以了解 GNU/Linux 系统上发出的最后一条命令。

我想我们是在谈论系统范围内的最后一个命令。经过一段时间的推理,如果你将命令集限制为实际用户使用交互式控制台发出的命令,那么最后一个命令应该已经注册在命令历史记录中。

思考这个问题的另一种方式是询问如何判断在 GNU/Linux 机器上创建的最后一个进程是哪个,是否仍在运行或者已经完成执行,哪个是父进程以及其他相关信息。

答案1

我找到了一个有助于流程核算的 Linux 软件包。

在我的 Ubuntu 9.10 系统上,我执行以下操作来安装程序“acct”:

sudo apt-get install acct

然后需要创建一个空白日志文件,您可以这样做:

sudo touch /var/log/pacct

此后,需要激活流程会计:

sudo /usr/sbin/accton /var/log/pacct

从那时起,进程与执行它们的用户和相关终端一起记录。

可以使用以下命令查看日志文件:

lastcomm -f /var/log/pacct

我仍在研究这个程序...但看起来它有帮助。

答案2

对于特定用户(和 shell):history

对于当前进程:ps

答案3

嗯,系统范围的系统看起来相当复杂。这样的系统意味着应该有一些进程来监控每个用户的 .bash_history。然后当它更新时,中央数据库也会更新。一旦完成,我们就可以扩展“history”命令,从中央数据库中选择。不过这不是一个坏主意。

答案4

您可以使用史努比监视所有执行的命令。

相关内容