Waf*_*epi 8 macos terminal cpu
我在linux和windows上看过同样的问题,但不是mac(终端).任何人都可以告诉我如何以%为单位获得当前处理器利用率,因此示例输出将是40%.谢谢
vcs*_*nes 27
这适用于Mac(包括%):
ps -A -o %cpu | awk '{s+=$1} END {print s "%"}'
Run Code Online (Sandbox Code Playgroud)
为了打破这一点:
ps是流程状态工具.大多数*nix之类的操作系统都支持它.我们想要传递给它的一些标志:
-A 意味着所有流程,而不仅仅是那些正在运行的流程.-o让我们指定我们想要的输出.在这种情况下,我们想要ps输出的cpu%列.这将为我们提供所有进程cpu使用情况的列表,例如
0.0 1.3 27.0 0.0
我们现在需要将此列表相加以获得最终数字,因此我们将ps的输出输出到awk.awk是一个非常强大的解析和操作文本的工具.我们只需将数字相加,然后打印出结果,最后添加"%".
基于 @Jon R. 和 @Rounak D 之前的答案,以下行打印用户值和系统值的总和以及添加的百分比。我已经测试了这个值,我喜欢它与macOS 活动监视器中显示的百分比大致吻合。
top -l 2 | grep -E "^CPU" | tail -1 | awk '{ print $3 + $5"%" }'
Run Code Online (Sandbox Code Playgroud)
然后,您可以在脚本的变量中捕获该值,如下所示:
cpu_percent=$(top -l 2 | grep -E "^CPU" | tail -1 | awk '{ print $3 + $5"%" }')
Run Code Online (Sandbox Code Playgroud)
PS:您可能还对正常运行时间的输出感兴趣,它显示系统负载。
将所有这些 CPU % 相加可以得到一个 > 100% 的数字(可能是多核)。
这是一个更简单的方法,虽然它有一些问题:
top -l 2 | grep -E "^CPU"
Run Code Online (Sandbox Code Playgroud)
这给出了 2 个样本,其中第一个是无意义的(因为它计算样本之间的 CPU 负载)。
此外,您需要使用 RegEx 之类的(\d+\.\d*)%或一些字符串函数来提取值,并添加“user”和“sys”值以获得总数。
(来自如何从命令行获取 CPU 利用率、MAC 中的 RAM 利用率)
| 归档时间: |
|
| 查看次数: |
13569 次 |
| 最近记录: |