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를 유지하면서 다음 행을 읽습니다.

관련 정보