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