2013-04-10 60 views
0

我想排序並計算從我的服務器上下載多少文件(3種類型)。如何在Linux上嗅探結果進行解析?

我安裝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。 在Linux不強,但確保它可以完成1-3行腳本。

也許與awk,但我不知道是什麼技術來讀取嗅探器的結果。

謝謝,

回答

2

難道你不能只是grep的Web服務器的日誌文件?

無論如何,HTTP流量相對捕獲的線解壓到你的服務器的文件,只是

./tshark 'tcp port 80 and \ 
      (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' \ 
      -R'http.request.method == "GET"' | \ 
    egrep "HTTP GET /pids/.*.bin" 
+0

肯定嘗試,我可以分析日誌,但有時我得到10-20G文件大小,它會導致高中央處理器。所以我試圖嗅探它 – 2013-04-10 15:02:35

+0

只是像這樣解析輸出'tail -f/path/logfile |如果你需要從現在開始的數據'grep etc' – 2013-04-10 15:06:06