通常,为了查看单个 CPU 百分比,我们在 top 的交互模式下按“1”。
但是我无法弄清楚在批处理模式下获取相同输出的逻辑,即
top -n1b
我要将此输出重定向到一个文件以便稍后查看,所以我需要批处理模式。可以吗?为此安装单独的工具是不可能的。
我正在寻找我缺少的选项或某种方法来捕获输出。
答案1
在交互式 top 中,通过键入 切换到单个 CPU % 1
,然后通过键入 将当前配置写入文件W
。这将创建~/.toprc
。现在,top -n1b
还将输出每个 CPU 的百分比。.toprc
如果您的脚本以其他用户身份运行,您可能需要复制文件并更改权限。
答案2
一定要用 top 吗?也许你需要 mpstat
mpstat -A
答案3
这有点像 hack,但似乎有效:
$ ssh local.ubuntu.server "(sleep 1;echo 1)|TERM=xterm script -c top & sleep 2;killall script"|grep '^%Cpu'
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.1 st
%Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
答案4
您可以使用 atop。它是一款非常全面的监视器,您可以监视进程以及内存和 CPU 等系统资源。它为每个 CPU 核心提供单独的输出。
对于 ubuntu 系统,它作为 repo 中的包提供,因此您可以直接通过 apt-get/synaptic 安装它。
对于 Redhat 及其派生系统,您可以在这里找到软件包: http://dag.wieers.com/rpm/packages/atop/