oswiostatの解析

oswiostatの解析

私はiostatファイルを解析し、時間とiowaitを取得する方法を探しています。私のファイルは次のとおりです。

Linux OSWbb v7.3.3
zzz ***Wed Jul 20 19:00:08 EDT 2016
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          49.62    0.00    2.92   13.71    0.00   33.76

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
                sda               0.00    15.00    2.00    8.00     8.00    92.00    20.00     0.02    2.40   1.40   1.40
                dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     


zzz ***Thu Jul 20 19:01:09 EDT 2016
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          10.33    0.00    7.81   20.26    0.00   61.59

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
            sda               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

zzz ***Thu Jul 20 19:02:09 EDT 2016
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          10.33    0.00    7.81   20.26    0.00   61.59

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
            sda               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

最初の行(zzz)から時間を取得し、複数のファイルから%iowaitを返したいと思います。どんな提案でも大変感謝します。ありがとう

ベストアンサー1

を使用してパターンを選択し、目的の行を選択してawkフィールドを抽出できます。例えば

awk '
/:[0-9][0-9]:/ { time=$5 }
/%iowait/ { getline; iowait=$4; print time, iowait }
'

これは行と一致し、:<two digits>:フィールド 5 を保持します。 row と一致すると、%iowaitフィールド 4 を保持しながら次の行を読み込みます。

おすすめ記事