解析iostat输出

时间:2013-11-26 12:29:49

标签: bash sed awk

我需要仅使用iostat生成的日志文件中的某些行进行grep。 iostat命令是iostat -x 1 -m> disk.log并保存如下文件:

Linux 2.6.32-358.18.1.el6.x86_64 (parekosam)    11/26/2013      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.04    0.01    0.14    0.28    0.00   99.53

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sda              72.44     6.67    4.15    0.34     0.33     0.03   162.23     0.02    3.92   1.77   0.80
dm-0              0.00     0.00    1.30    6.96     0.03     0.03    15.11     0.65   78.37   0.69   0.57
dm-1              0.00     0.00    0.07    0.00     0.00     0.00     7.99     0.00    2.57   0.67   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    1.01    0.00   98.99

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     5.00    0.00    3.00     0.00     0.03    18.67     0.03   10.67  10.67   3.20
dm-0              0.00     0.00    0.00    7.00     0.00     0.03     8.00     0.04    5.29   4.57   3.20
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

我只想显示rMB / s和wMB / s列,以便我可以计算平均速度。我尝试了sedawk的一些事情,但收效甚微。理想输出应如下所示:

12.27   10.23
11.27   10.22
15.26   20.23
12.24   10.25
12.26   50.23
12.23   10.26
13.23   23.23
12.22   10.23
12.23   10.23
22.23   14.27
13.21   10.23
12.23   10.23
14.22   10.23
12.23   10.21

2 个答案:

答案 0 :(得分:2)

请注意这只适用于'sda'。

iostat -x 1 -m | awk '/sda/ { print $6, $7}'

答案 1 :(得分:1)

这样做你想要的吗?

/^$/ {a=""}
a {print $6,$7}
/^Device/ {a=1}