最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2014年04月24日 11:03:37   作者:  
這篇文章主要介紹了shell統(tǒng)計(jì)pv和uv、獨(dú)立ip的方法,需要的朋友可以參考下

每天分析日志的哥們實(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這也頁面的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來匹配具體頁面,只需要使用cat輸出即可:

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

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


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

相關(guān)文章

  • 詳解Shell if else語句的具體使用方法

    詳解Shell if else語句的具體使用方法

    這篇文章主要介紹了詳解Shell if else語句的具體使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Obsidian斜杠命令用法詳解

    Obsidian斜杠命令用法詳解

    這篇文章主要介紹了終于定制出順手的Obsidian斜杠命令,利用斜杠命令?+?命令面板置頂?+?Quick?Add插入內(nèi)容?+?Quick?Add別名命令,就可以根據(jù)自己習(xí)慣,實(shí)現(xiàn)定制化的斜杠命令,需要的朋友可以參考下
    2022-12-12
  • linux echo命令以及l(fā)inux echo命令提示權(quán)限不夠的解決辦法

    linux echo命令以及l(fā)inux echo命令提示權(quán)限不夠的解決辦法

    linux的echo命令, 在shell編程中極為常用, 在終端下打印變量value的時(shí)候也是常常用到的, 因此有必要了解下echo的用法。下面通過本文給大家介紹linux echo命令以及l(fā)inux echo命令提示權(quán)限不夠的解決辦法,感興趣的朋友一起看看吧
    2017-09-09
  • Linux 中C語言getcwd()函數(shù)的用法

    Linux 中C語言getcwd()函數(shù)的用法

    這篇文章主要介紹了Linux 中C語言getcwd()函數(shù)的用法的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 詳解Linux下find查找文件命令和grep查找文件命令

    詳解Linux下find查找文件命令和grep查找文件命令

    在使用linux時(shí),經(jīng)常需要進(jìn)行文件查找。其中查找的命令主要有find和grep,兩個(gè)命令是有區(qū)的,今天通過本文給大家介紹下Linux下查找文件(find、grep命令),感興趣的朋友一起看看吧
    2022-04-04
  • Shell腳本中實(shí)現(xiàn)切換用戶并執(zhí)行命令操作

    Shell腳本中實(shí)現(xiàn)切換用戶并執(zhí)行命令操作

    這篇文章主要介紹了Shell腳本中實(shí)現(xiàn)切換用戶并執(zhí)行命令操作,看了示例代碼就秒懂了,原來如此簡(jiǎn)單,需要的朋友可以參考下
    2014-12-12
  • kill特定進(jìn)程的shell腳本代碼

    kill特定進(jìn)程的shell腳本代碼

    學(xué)習(xí) shell kill 特定進(jìn)程的方法,有暴力的,也有溫柔點(diǎn)的,看你的個(gè)人喜好了
    2013-02-02
  • shell實(shí)現(xiàn)tr刪除替換詳解

    shell實(shí)現(xiàn)tr刪除替換詳解

    這篇文章主要介紹了shell實(shí)現(xiàn)tr刪除替換詳解,需要的朋友可以參考下
    2014-12-12
  • Shell腳本批量清除Nginx緩存

    Shell腳本批量清除Nginx緩存

    這篇文章主要介紹了Shell腳本批量清除Nginx緩存,本文直接給出實(shí)現(xiàn)代碼和執(zhí)行效果圖,需要的朋友可以參考下
    2014-12-12
  • 淺談:linux cron 計(jì)劃任務(wù)常用符號(hào)小結(jié)

    淺談:linux cron 計(jì)劃任務(wù)常用符號(hào)小結(jié)

    本文給大家介紹linux cron計(jì)劃任務(wù)常用符號(hào)小結(jié),感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2015-10-10

最新評(píng)論

云阳县| 库车县| 石河子市| 合水县| 清水县| 德安县| 东乡| 通化县| 新建县| 鞍山市| 和静县| 旬阳县| 丰台区| 通江县| 佛学| 西安市| 望城县| 双江| 四会市| 卓尼县| 区。| 龙岩市| 同心县| 汉沽区| 辽源市| 双桥区| 郯城县| 抚顺县| 南城县| 邳州市| 民权县| 环江| 芜湖市| 章丘市| 革吉县| 东兴市| 巴彦淖尔市| 郧西县| 榆中县| 西城区| 宁蒗|