gpt4 book ai didi

linux - 用于记录进程 ram 和 cpu 使用情况的小 sh 脚本

转载 作者:太空狗 更新时间:2023-10-29 11:04:49 24 4
gpt4 key购买 nike

我在 centos 机器上有以下 sh 脚本:

echo "PID,CPU,MEM,PROC"
while [ 1 ]
do
ps aux | grep mysql | awk '{print $2",", $3",", $4",", $11}'
sleep 1
done

每个循环的输出都有这个输出:

1163, 0.0, 0.0, /bin/sh
1265, 0.0, 1.5, /usr/libexec/mysqld
11807, 0.0, 0.3, grep

我想知道如何循环输出并使用变量来合并值并只返回一行:合并结果中不需要 PID 和 PROC

mysql, 0.0, 1.8

其中 0.0 是 CPU(所有进程 cpu 使用总和)和 1.8 RAM(所有进程 ram 使用总和)。

最佳答案

ps -eo "comm %cpu %mem" --no-headers | awk '{a[$1] = $1; b[$1] += $2; c[$1] += $3}END{for (i in a)printf "%s, %0.1f, %0.1f\n", a[i], b[i], c[i]}' | sort

示例输出:

awk, 0.0, 0.0
bash, 0.0, 1.5
ps, 0.0, 0.0
sort, 0.0, 0.0

具体过程:

ps -C bash -o "comm %cpu %mem" --no-headers | awk '{a[$1] = $1; b[$1] += $2; c[$1] += $3}END{for (i in a)printf "%s, %0.1f, %0.1f\n", a[i], b[i], c[i]}'

输出:

bash, 0.0, 1.5

关于linux - 用于记录进程 ram 和 cpu 使用情况的小 sh 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18922040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com