【发布时间】:2014-03-22 21:16:44
【问题描述】:
对于一个基准脚本,我需要在一些操作后立即提取 iowait %。
目前,我发现最好的方法是:
IOWAIT=top -bn2 | awk '$1~/Cpu/ {print $6}' | sed -n '2p' | tr -d '%wa,'
正确的输出类似于 2.1:
首先,如果我没有精确“-bn2”,我不知道为什么,如果我只捕获 1 次,它总是 0.1%。所以我捕获了两次,然后我 awk 获取 iowait 字段,然后我 sed 第二行,然后我删除了“%wa”
仅供参考,这是top -bn2 | grep Cpu的输出
Cpu(s): 2.8%us, 0.4%sy, 0.0%ni, 96.6%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st<br>
Cpu(s): 0.2%us, 2.9%sy, 0.0%ni, 87.1%id, 9.5%wa, 0.0%hi, 0.3%si, 0.0%st
我的问题如下: 当我得到一列 100.0%(例如空闲)时,它会移动列号,所以我的 awk 不再工作,我得到“0.0%hi”字段。
我的问题如下:
-如何告诉 awk 使用 "%wa" 进入列?
如果有人对我想做的事情有最好的方法,我当然愿意接受建议!
谢谢
【问题讨论】:
标签: regex bash awk disk-io iowait