linux:每进程监视器,每 10 分钟一次,具有历史访问权限

Inb*_*ose 5 memory linux cpu-usage process virtual-memory

我真的不知道问我问题的更好方法,因此你得到了一个可怕的问题。

我会解释我想做什么,也许这会帮助你帮助我。

我想让我的 linux 机器持续监控(每 10 分钟)我机器上的所有进程。我需要的每个进程的信息是名称、CPU 使用率、分配的(虚拟)内存和驻留(ram)内存。

如果要查看这些定期报告,它们将如下所示:

PROCESS    CPU    RAM    VIRTUAL
name1    %    MB    MB
name2    %    MB    MB
...etc..etc
Run Code Online (Sandbox Code Playgroud)

这些报告应该以这样的方式存储,以便我可以在以后通过提供日期/时间范围(范围)来访问它们。例如,如果我想查看从 12:00:00 1.12.12 到 12:00:00 2.12.12 的进程历史记录,我可以 - 它应该每 10 分钟给我一次进程的历史记录日期/时间边界。

返回的格式并不重要,无论如何都会由脚本处理,并且可以修改为我需要的任何内容。

到目前为止,我已经研究了一些东西,但还没有找到明显满足我需求的东西。我搜索的内容包括:sarfree(1)top(1) .. 以及其他一些内容。

这应该是一个简单的问题,我已经可以通过简单地查看我htop的 .基于日期/时间范围(范围)的数据。

注意:我对linux的经验有限,所以请提供详细信息。

注意2:所需的输出将是这样的(在收到所需的范围后)

CPU USAGE BY PROCESS:
proc_nameA 1,2,2,2,2,2...... numbers represent % usage every 10 minutes...
proc_nameB 4,3,3,6,1,2......
Run Code Online (Sandbox Code Playgroud)

与其他信息相同的想法。

ger*_*ijk 7

试试atop

它将每 5 或 10 分钟(取决于您为您选择的发行版)记录所有这些系统信息作为守护程序并将其放入二进制文件中。然后使用

atop -r
Run Code Online (Sandbox Code Playgroud)

以交互方式查看今天的标准日志文件的内容。这就像htop一些额外的 I/O 信息,让您可以回到过去,看看那些时刻发生了什么。按t前进,按Shift+t后退。

您还可以将其指向特定的时间范围。从联机帮助页:

With the flag -b (begin time) and/or -e (end time) followed by a time argument
of the form HH:MM, a certain time period within the raw file can be selected.
Run Code Online (Sandbox Code Playgroud)

在原始文件中写入的内容并不过分可配置。

我建议您也阅读更多的 atop 联机帮助页以开始使用,例如阅读昨天日志文件的内容。

这是我的机器 'zarafa' 在今天早上 7:35:40 到 7:45:40 之间的表现:

在屏幕截图上

  • @InbarRose 正如我在回答中已经指出的那样,这只是 RTFM imo。如果你不能让它做你想做的事,我建议问一个更具体的问题。 (2认同)