gpt4 book ai didi

linux - 如何获取 iostat 第二个样本

转载 作者:太空宇宙 更新时间:2023-11-04 10:27:19 25 4
gpt4 key购买 nike

iostat -x 不显示真实值。如果您运行 iostat -x 1 并查看每秒的值,这是显而易见的。当我运行 iostat -x 1 2 时,我认为我可以通过获取确切的行然后获取值来获得我想要的值。

iostat -x 1 2 | awk '{gsub(/,/,"."); if (NR==15) printf ("%s,%s,%s,", $1, $3 ,$4); else if (NR == 18) printf ("%s,", $14);}'

从第 15 行开始给我 %user、%system、%iowait,从第 18 行开始是 %sda。

不幸的是,我不能这样做,因为我有不止一台具有不同磁盘的机器。当我运行 iostat -x 时,sda 可能在第 18 行、第 21 行或另一行。

如何运行 iostat -x 并只获取第二个样本?或者我怎样才能得到我想要的关于这条线的值(value)?

我想到了 iostat -x 1 2 | awk '/^sda/{print $14}'然后只获取第二个值,但如果我采用这种方法,我将需要 8 秒才能获取我想要的所有值。

iostat -x 1 2 的输出

Linux 3.10.0-327.28.3.el7.x86_64 (sth)  13/12/2016  _x86_64_    (8 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
0,70 0,00 0,23 0,09 0,00 98,98

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
nvme0n1 0,00 0,00 0,00 0,00 0,03 0,00 38,29 0,00 0,13 0,13 0,00 0,02 0,00
sda 0,01 0,18 0,23 7,52 38,37 3132,67 819,15 1,26 162,49 219,88 160,76 3,74 2,89
sdb 0,00 0,00 0,62 0,00 78,93 0,00 255,56 0,00 0,40 0,40 0,00 0,24 0,01
dm-0 0,00 0,00 1,02 2,10 21,16 156,62 113,89 0,11 34,80 4,22 49,58 2,13 0,66
dm-1 0,00 0,00 0,00 0,00 0,01 0,00 59,16 0,00 0,54 0,36 3,15 0,42 0,00
dm-2 0,00 0,00 0,01 0,01 0,13 0,76 84,61 0,00 177,30 0,58 287,55 28,81 0,06

avg-cpu: %user %nice %system %iowait %steal %idle
0,03 0,00 0,03 0,00 0,00 99,94

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
nvme0n1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
sda 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
sdb 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-2 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

最佳答案

这将为您提供标题和值的第二个实例,您可以进一步限制字段并根据需要跳过标题

$ iostat -x 1 2 | awk '/^avg-cpu/  {c++; a=4} 
c==2 && a && a--;
c==2 && /^sdb/'

avg-cpu: %user %nice %system %iowait %steal %idle
1.31 0.00 0.22 0.00 0.00 98.47

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

这个没有标题,只需选择您要打印的字段(而不是 $0)。

$ iostat -x 1 2 | awk '/^avg-cpu/        {c++; a=2} 
c==2 && a && !--a {print $0}
c==2 && /^sdb/ {print $0}'

1.78 0.00 0.78 0.03 0.00 97.41
sdb 0.00 0.00 0.00 831.00 0.00 6648.00 8.00 0.72 0.87 0.01 0.60

关于linux - 如何获取 iostat 第二个样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41128297/

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