-1

我正在尝试设置小型内部 cpu 监控 bash 脚本,当 cpu 使用率达到 90% 时,该脚本会向具有前 5 个 cpu 消耗最多的进程的用户发送电子邮件。如果有多个 CPU,它应该能够取所有 CPU 的平均值。

4

1 回答 1

1

查看该命令的手册页ps。选项之一是-o选项。这允许您以ps各种方式格式化命令的输出。

例如,要ps仅打印这些字段:

ps -oni -orss -o%cpu -osize --no-header

您可以通过循环读取它并进入read语句:

ps -oni -orss -o%cpu -osize --no-header | while read nice mem cpu disk
do
    echo nice = $nice, memory = $mem, cpu = $cpu, disk = $disk
done

以您想要的方式获取 JSON 格式取决于您。我也不是 100% 确定您正在寻找什么价值。是什么Cpu-Nice?是nice的值还是cpu使用量?“磁盘使用情况”是什么意思?

查看ps联机帮助页,找到所需的列,然后显示它们。也可以使用您的无标题选项,或者简单地执行以下操作:

ps -oni= -orss= -ocpu%= -osize=

这也将不显示任何标题。

于 2013-03-25T14:19:49.393 回答