从 top 命令查找 CPU 使用率

P R*_*esh 9 scripts

我目前正在使用

top -b -d 1 > file1.csv
Run Code Online (Sandbox Code Playgroud)

将整个输出附加到一个 csv 文件。但是,我希望单独在 file1 中输入 Cpu(%us) 字段。我已经到了这个程度:

top -b -d 1|grep Cpu 
Run Code Online (Sandbox Code Playgroud)

在那里我只能查看 Cpu 条目。

当我尝试

top -b -d 1|grep Cpu > file1.csv
Run Code Online (Sandbox Code Playgroud)

它认为不起作用,因为我什至无法查看我的文件。

我的目的是为所有 CPU 值(存储在 csv 文件中)动态绘制 LiveGraph。谢谢!

Lui*_*ado 9

对于总 CPU 使用率:

如果您只想要一般的 CPU 使用率,您可以试试这个:

top -b -d1 -n1|grep -i "Cpu(s)"|head -c21|cut -d ' ' -f3|cut -d '%' -f1 > file1.csv

这将只为您提供 CPU 值并更新文件中的值。如果您想将数据附加到文件中(因为我看到您将其命名为 csv 文件),那么不要使用一个 > 使用两个,例如>> file1.csv.

对于每个线程和 CPU 使用情况:

首先,您需要消除其余的列,以便更轻松地获取 CPU 数据。

  1. 运行top并按f
  2. 在此菜单中,您可以选择要查看和不查看的列。对于您的情况,只留下 CPU 列和名称(如果您需要名称)
  3. ESC返回主菜单并使用大写W保存更改。现在你的命令更容易解析。

现在对于一般 CPU 使用情况,您通常有其他工具,例如psiostat执行cat /proc/stat. 对于每个你需要一个不同的解析,比如用于顶部的解析。因为你在标题中明确提到它,所以我只在这里发布 TOP。

注意:应注意 top 不是查看 CPU 使用率或在解析 CPU 值时使用的最有效方法。对于某些,在 cut 命令中使用 f2 显示值,对于其他人, f3

在此处输入图片说明