shell 一个bash命令来对Kubernetes表中的数字求和?[已关闭]

djmepvbi  于 2023-08-07  发布在  Shell
关注(0)|答案(1)|浏览(82)

已关闭。此问题需要更多focused。它目前不接受回答。
**希望改进此问题?**更新问题,使其仅针对editing this post的一个问题。

23天前关闭
Improve this question
在Kubernetes中使用k top pods -A获取CPU使用率和内存后,有没有办法用bash命令对这些列进行求和?或者是因为单位的原因,它们不可能被转换成数字?enter image description here我希望能够得到这两列的总和,有没有bash命令可以做到这一点?我似乎不知道如何使用awk来做这件事。我尝试了awk“{s+=$1}END{print s}”,但我无法真正弄清楚。在那之后终端就停止接受输入,没有输出任何东西。会很感激帮助,谢谢!

neekobn8

neekobn81#

我从来没有使用过Kubernetes,但一些谷歌搜索显示,输出真的是这样(这不是你的屏幕截图显示的):

NAMESPACE            NAME                                                        CPU(cores)   MEMORY(bytes)   
kube-system          coredns-558bd4d5db-k7mfl                                    8m           11Mi            
kube-system          coredns-558bd4d5db-qwrrk                                    8m           12Mi

字符串
从我所做的有限研究来看,不清楚这些单位是否总是m(毫单位)和Mi(兆字节?)。如果这些是唯一的单位后缀,那么就简单地忽略它们。由于在Awk中将字符串转换为数字会忽略最后一个数字之后的任何字符,所以你不需要做任何事情。

BEGIN {
    cpu = 0
    mem = 0
}
NR == 1 { next }
{
    cpu += $3
    mem += $4
}
END {
    print cpu, mem
}


对于上面的示例数据,这将打印16 23。如果单位后缀可以是其他字符串,则需要测试哪个后缀存在,并对数字应用适当的缩放因子。

相关问题