主頁 > 知識庫 > shell統(tǒng)計pv和uv、獨立ip的方法

shell統(tǒng)計pv和uv、獨立ip的方法

熱門標簽:杭州機器人外呼系統(tǒng) 佛山高德地圖標注中心 陜西電銷卡外呼系統(tǒng)怎么安裝 excel地址地圖標注 旅游地圖標注大全 地圖標注超出范圍怎么辦 東莞電銷機器人價格一覽表 百度地圖標注圖標更換 百度地圖的地圖標注

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

Nngix輸出的access log文件如下:

日志文件代碼 

復制代碼 代碼如下:

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" "-" 
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" "-" 
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" "-" 
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)" "-" 
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很簡單,大致就是統(tǒng)計某個URL的訪問次數,例如統(tǒng)計/index.html的訪問次數

復制代碼 代碼如下:
 
grep "/index.html" /var/log/nginx/access.log –c 

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

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

復制代碼 代碼如下:

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


獨立IP:

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

復制代碼 代碼如下:

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


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

標簽:青島 朝陽 雅安 延邊 通遼 西藏 隨州 南充

巨人網絡通訊聲明:本文標題《shell統(tǒng)計pv和uv、獨立ip的方法》,本文關鍵詞  shell,統(tǒng)計,和,獨立,的,方法,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《shell統(tǒng)計pv和uv、獨立ip的方法》相關的同類信息!
  • 本頁收集關于shell統(tǒng)計pv和uv、獨立ip的方法的相關信息資訊供網民參考!
  • 推薦文章