2013-10-16 3 views
1

2 초 간격으로 카운터가 있습니다.패킷 카운터에서 특정 카운터가 떨어지는 지 확인합니다.

  • 숫자가 1200에서 1600 사이 여야 함을 검증해야합니다. 전체 출력을 구문 분석하지 않고 수행 할 수있는 방법이 있습니까?

  • 특정 시간 간격 동안 카운트가 일치하는 범위에 속하지 않으면 일부 오류/경고 메시지가 인쇄됩니다.

  • 이 카운터의 평균값을 구하는 방법은 있습니까?

 

# tshark -r q4-mme.pcap -qz io,stat,2,"COUNT(frame.time)frame.time" 
=================================================================== 
IO Statistics 
Interval: 2.000 secs 
Column #0: COUNT(frame.time)frame.time 
       | Column #0 
Time   |   COUNT 
000.000-002.000    1241 
002.000-004.000    1272 
004.000-006.000    1315 
006.000-008.000    1371 
008.000-010.000    1195 
010.000-012.000    1299 
012.000-014.000    1305 
014.000-016.000    1391 
016.000-018.000    1463 
018.000-020.000    1454 
020.000-022.000    1392 
022.000-024.000    1438 
024.000-026.000    1362 
026.000-028.000    1491 
028.000-030.000    1392 
030.000-032.000    1422 
032.000-034.000    1425 
034.000-036.000    1486 
036.000-038.000    1449 
038.000-040.000    1487 
040.000-042.000    1402 
042.000-044.000    1420 
044.000-046.000    1330 
046.000-048.000    1458 
048.000-050.000    1420 
050.000-052.000    144 
=================================================================== 

제가 원하는 결과를 얻을 수있는 방법을 알려 주시기 바랍니다.

+1

코드를 인쇄하면 질문을 참조 할 수 있습니다. –

+0

코드는 패킷 캡처 파일을 작성하고 2 초 간격 -> tshark -r q4-mme.pcap -qz io, stat, 2, "COUNT (frame.time) frame.time"에 따라 카운터를 가져 오는 필터를 적용합니다. 이 출력을 구문 분석하고 카운터를 확인하는 정규식 이외의 다른 방법이 있는지 알고 싶습니다. – npatel

+0

예, 파이썬을 작성하여 각 출력 행을 처리하고 값을 결정할 수도 있습니다. 문제는 정규식을 사용하는 것을 정당화하지 않는 것처럼 보입니다. –

답변

1

저는 파이썬에 익숙하지 않습니다. 그러나 여기에 awk을 사용하는 시도가 있습니다. 해당 시스템 명령을 사용하여 python에서 호출 할 수 있습니다.

1195 
144 

계산 평균

awk '$1 ~ /[0-9]+\.[0-9]+-[0-9]+\.[0-9]+/ {total+=$2; cnt++;} END {printf "Average = %.2f\n", total/cnt}' file 

출력 :

01,235,164

1600

awk '($1~/[0-9]+\.[0-9]+-[0-9]+\.[0-9]+/ && ($2<1200||$2>1600)) {print $2}' file 

출력 1200의 카운트 범위 확인

Average = 1339.38 
+0

파삭 파삭 한 해결책을위한 감사합니다 jkshah! 그것은 할 것이다. – npatel