parsing oswiostat

0

Eu estou procurando uma maneira de analisar um arquivo iostat e pegar o tempo e iowait. Meus arquivos são assim:

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

Eu estou olhando para pegar o tempo da primeira linha (zzz) e retornar o% iowait em vários arquivos. Qualquer sugestão seria apreciada. Obrigado

    
por mike 21.07.2016 / 03:51

1 resposta

0

Você pode usar awk . Escolha um padrão que selecione a linha desejada e extraia o campo. eg

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

Corresponde a uma linha com :<two digits>: e mantém o campo 5. Quando corresponde a uma linha com %iowait , lê a próxima linha e mantém o campo 4.

    
por 21.07.2016 / 12:19

Tags