我正在编写一个脚本,该脚本每小时在 cronjob 上将内存和 CPU 使用情况写入日志文件。日志文件将如下所示:
“/n====核心的 CPU 使用率====”
Core0:已使用 59.05%
核心1:已使用 57.68%
“/n====进程的 RAM/CPU 使用情况====”
PID | 使用的 RAM (KB) | 使用的 CPU 百分比 | COMM | 用户
01 | 00003352 | 0.15%| /sbin/launchd | 根
11 | 00009220 | 0.65%| /usr/libexec/Use | 根
12 | 00005504 | 7.81%| /usr/libexec/kex | 根
它很可能会使用一个命令来表示核心的 CPU 使用情况,使用另一个命令来表示进程的 RAM/CPU 使用情况,但我可以对两者使用一个命令,或者总共使用两个以上的命令。
以下命令显示了我需要的部分或全部数据,但不幸的是它们不是解决方案:
top
与 Linux 不同,OS X 上没有-b
命令。这意味着它会自动刷新,因此不适合写入日志文件。获取每个 CPU / 核心的使用率百分比的命令?htop
是一个交互式程序,不适合写入日志文件。而且它以 ASCII 条形图的形式显示核心的 CPU 使用率。获取每个 CPU / 核心的使用率百分比的命令?ps
可能会严重低估内存使用量,例如当页面共享或多个应用程序使用相同的动态链接库时。否则,我会使用ps -eo "pid rss pmem pcpu comm user"
。mpstat
不在 OS X 上并且不能通过 homebrew 使用。
让我的用户从命令行安装 homebrew 是可以接受的,但让他们从源代码构建并让他们手动将命令添加到 bash 是不可接受的。
此外,所有计时都需要在 cronjob 中完成,因此我不能使用自动刷新命令并在第一个循环后终止它们。
感谢您的帮助。 :)