0
내 서버에서 얼마나 많은 클라이언트가 파일 (3 가지 유형)을 다운로드했는지 계산하고 싶습니다.어떻게 리눅스 스니퍼 결과를 즉시 파싱합니까?
내가 tshark
를 설치하고 GET
요청 캡처해야 다음 명령을 실행 :
`./tshark 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -R'http.request.method == "GET"'`
너무 스니퍼 일을 시작하고 매초마다 나는 새 행을 얻기를, 여기 결과입니다 :
0.000000 144.137.136.253 -> 192.168.4.7 HTTP GET /pids/QE13_593706_0.bin HTTP/1.1
8.330354 1.1.1.1 -> 2.2.2.2 HTTP GET /pids/QE13_302506_0.bin HTTP/1.1
17.231572 1.1.1.2 -> 2.2.2.2 HTTP GET /pids/QE13_382506_0.bin HTTP/1.0
18.906712 1.1.1.3 -> 2.2.2.2 HTTP GET /pids/QE13_182406_0.bin HTTP/1.1
19.485199 1.1.1.4 -> 2.2.2.2 HTTP GET /pids/QE13_302006_0.bin HTTP/1.1
21.618113 1.1.1.5 -> 2.2.2.2 HTTP GET /pids/QE13_312106_0.bin HTTP/1.1
30.951197 1.1.1.6 -> 2.2.2.2 HTTP GET /nginx_status HTTP/1.1
31.056364 1.1.1.7 -> 2.2.2.2 HTTP GET /nginx_status HTTP/1.1
37.578005 1.1.1.8 -> 2.2.2.2 HTTP GET /pids/QE13_332006_0.bin HTTP/1.1
40.132006 1.1.1.9 -> 2.2.2.2 HTTP GET /pids/PE_332006.bin HTTP/1.1
40.407742 1.1.2.1 -> 2.2.2.2 HTTP GET /pids/QE13_452906_0.bin HTTP/1.1
무엇 결과 유형을 저장하고 다른 파일에 /pids/*****.bin
과 같은 개수를 저장하려면해야합니다. 리눅스에서는 강력하지 않지만 1-3 행의 스크립트로 수행 할 수 있습니다.
awk
일 수도 있지만 스니퍼의 결과를 읽는 기술은 무엇인지 모르겠습니다.
고맙습니다.
확인과 시도, 서버 파일을 캡처 한 HTTP 트래픽 상대의 라인을 추출하는, 그러나 때때로 나는 10-20G 파일 크기를 얻을 수 있으며 높은 원인 CPU. 그래서 그것을 스니퍼하려고합니다. –
그냥'tail -f/path/logfile | grep etc' 데이터가 필요하면'지금부터' –