使用cat,awk和sort命令从nginx访问日志中统计user-agent类型
業(yè)務(wù)場景描述如下:
我有一個(gè)Nginx的web服務(wù)器,需要從統(tǒng)計(jì)日志中統(tǒng)計(jì)有哪些類型的設(shè)備終端和瀏覽器訪問了我的網(wǎng)站。
訪問日志中的每條記錄是這樣的:
使用下面的命令得到user-agent所在的字段
cat cpm.access.log-20141211 | awk -F '"' '{print $6}' > ua_1211.txt
意思是,處理該文件的每一行,指定“為分隔符,只輸出第6個(gè)文本域
提取的user-agent字段得到的文件為
很顯然,需要對(duì)這些行進(jìn)行去重,這只需要一個(gè)簡單的sort命令就可以請(qǐng)求搞定:
sort ua_1211.txt | uniq -u > ua_1211.sort.txt
對(duì)文檔按照ascii字符順序進(jìn)行排序,同時(shí)去掉重復(fù)行,并將結(jié)果重定向到新文件中
下面是去重后的文件內(nèi)容
為了結(jié)果更精確,我需要對(duì)當(dāng)前目錄下面的所有日志都做相同的分析,為此,我需要先將這些文件都合并到一個(gè)大日志文件中,再對(duì)這個(gè)大文件執(zhí)行上面的操作。使用cat的通配符合并功能很容易實(shí)現(xiàn)文件合并:
cat cpm.access.log-2014121* > cpm.access.log
再對(duì)這個(gè)合并文件cpm.access.log做分析
cat cpm.access.log | awk -F '"' '{print $6}' | sort | uniq -u > ua_analysis.txt
這次我們看到了更多神奇的東西,看來訪問各種移動(dòng)端訪問我們網(wǎng)站還是很多的,總結(jié)有1333種終端訪問。
其實(shí)類似的其他場景的問題也可以參照解決。
下面是我收集的user-agent文件,參見下載鏈接
收集的user-agent大全.txt
觀察日志發(fā)現(xiàn)UA字符串:
Mozilla/5.0 (compatible; Baiduspider/2.0; http://www.baidu.com/search/spider.html) ?
參考文獻(xiàn)
[1].http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html
[2].http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858385.html
總結(jié)
以上是生活随笔為你收集整理的使用cat,awk和sort命令从nginx访问日志中统计user-agent类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常见浏览器User-Agent大全
- 下一篇: mediav聚效广告代码片段