主頁(yè) > 知識(shí)庫(kù) > shell統(tǒng)計(jì)pv和uv、獨(dú)立ip的方法

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

熱門標(biāo)簽:地方門戶網(wǎng)站 Linux服務(wù)器 呼叫中心市場(chǎng)需求 鐵路電話系統(tǒng) 服務(wù)外包 百度競(jìng)價(jià)排名 網(wǎng)站排名優(yōu)化 AI電銷

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

Nngix輸出的access log文件如下:

日志文件代碼 

復(fù)制代碼 代碼如下:

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很簡(jiǎn)單,大致就是統(tǒng)計(jì)某個(gè)URL的訪問次數(shù),例如統(tǒng)計(jì)/index.html的訪問次數(shù)

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

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

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

復(fù)制代碼 代碼如下:

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


獨(dú)立IP:

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

復(fù)制代碼 代碼如下:

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


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

標(biāo)簽:蘭州 湘潭 銅川 仙桃 崇左 衡水 黃山 湖南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《shell統(tǒng)計(jì)pv和uv、獨(dú)立ip的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266