Shell 統計PV, UV ,獨立IP

來源:互聯網
上載者:User

每天分析日誌的哥們實在傷不起,經常需要給出PV,UV,獨立IP等一些統計值,使用C/C++,java都可以寫,過程是這樣的,先讀取檔案,漸進式掃描,把能標記的值放入資料結構中,排重得出最終結果,其實Linux本身有很強大的文本處理功能,完全可以用shell + 一些文本小工具得出結果。

 

Nngix輸出的access log檔案如下:

 

 

記錄檔代碼  
  1. 192.168.1.166 - - 119272312 [05/Nov/2011:16:06:59 +0800] "GET /index.html HTTP/1.1" 200 370 "http://192.168.1.201/" "Chrome/15.0.874.106" "-"  
  2. 192.168.1.166 - - 119272312 [05/Nov/2011:16:06:59 +0800] "GET /poweredby.png HTTP/1.1" 200 3034 "http://192.168.1.201/" "Chrome/15.0.874.106" "-"  
  3. 192.168.1.177 - - 1007071650 [05/Nov/2011:16:06:59 +0800] "GET /favicon.ico HTTP/1.1" 404 3650 "-" "Chrome/15.0.874.106" "-"  
  4. 192.168.1.178 - - 58565468 [05/Nov/2011:16:17:40 +0800] "GET / HTTP/1.1" 200 3700 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "-"  
  5. 192.168.1.166 - - 119272312 [05/Nov/2011:16:17:40 +0800] "GET /nginx-logo.png HTTP/1.1" 200 370 "http://192.168.1.201/" "Chrome/15.0.874.106" "-"  

 

PV很簡單,大致就是統計某個URL的訪問次數,例如統計/index.html的訪問次數

 

Shell代碼  
  1. grep "/index.html" /var/log/nginx/access.log –c  

 

 

UV呢,我們根據使用者標識(第四列) ,首先需要字串截取,使用cut命令,以空格符號分割,-d “ ”,再取第四列-f 4,然後這裡需要排重,需要使用uniq工具,uniq速度很快,但是基於就近排重,前一個後一個一樣會排重,之間間隔了不一樣的,就不行了,這就必須使用sort工具來對標識符進行排序,排序後再使用uniq工具就可以達到目的,之間我們用管道符號連結, 最後再用 wc –l 輸出統計數

 

比如我們統計訪問了/index.html這也頁面的uv:

 

 

Shell代碼  
  1. grep "/index.html" /var/log/nginx/access.log | cut –d “ ” –f 4| sort | uniq | wc –l  

 

 

獨立IP:

 

假設我們要統計整站的獨立IP,那麼我們不需要使用grep來匹配具體頁面,只需要使用cat輸出即可:

 

 

Shell代碼  
  1. cat /var/log/nginx/access.log | cut –d “ ” –f 1 | sort| uniq | wc -l  

 

都木有使用強大的awk,就完成了基本的統計需求:)

分享到:
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.