1. 程式人生 > >統計apache日誌檔案裡訪問量前十的ip並按從多到少排列

統計apache日誌檔案裡訪問量前十的ip並按從多到少排列

五月 31, 2012 by FandLR
Filed under Linux

Leave a comment
解法1: cat access_log | awk ’{print $1}’ | sort | uniq -c | sort -n -r | head -10
解法2:

cat access_log | awk -F- -” ‘{print $1}’ | sort -t . | uniq -c | sort -n -r | head -10
awk ‘{a[$1] += 1;} END {for (i in a) printf(“%d %s\n”, a[i], i);}’ 日誌檔案 | sort
-n | tail

首先用awk統計出來一個列表,然後用sort進行排序,最後用tail取最後的10個。

以上引數可以略作修改顯示更多的資料,比如將tail加上-n引數等,另外日誌格式不同命令也可能需要稍作修改。

當前WEB伺服器中聯接次數最多的ip地址

netstat -ntu |awk ‘{print $5}’ |sort | uniq -c| sort -nr`

檢視日誌中訪問次數最多的前10個IP

cat access_log |cut -d ‘ ‘ -f 1 |sort |uniq -c | sort -nr | awk ‘{print $0 }’ | head -n
10 |less

檢視日誌中出現100次以上的IP

cat access_log |cut -d ‘ ‘ -f 1 |sort |uniq -c | awk ‘{if ($1 > 100) print $0}’|sort -nr |less

檢視最近訪問量最高的檔案

cat access_log |tail -10000|awk ‘{print $7}’|sort|uniq -c|sort -nr|less

檢視日誌中訪問超過100次的頁面

cat access_log | cut -d ‘ ‘ -f 7 | sort |uniq -c | awk ‘{if ($1 > 100) print $0
}’ | less

統計某url,一天的訪問次數

cat access_log|grep12/Aug/2009′|grep ‘/images/index/e1.gif’|wc|awk ‘{print $1}’

前五天的訪問次數最多的網頁

cat access_log|awk ‘{print $7}’|uniq -c |sort -n -r|head -20

從日誌裡檢視該ip在幹嘛

cat access_log | grep 218.66.36.119| awk ‘{print $1″\t”$7}’ | sort | uniq -c | sort -nr | less

列出傳輸時間超過 30 秒的檔案

cat access_log|awk ‘($NF > 30){print $7}’ |sort -n|uniq -c|sort -nr|head -20

列出最最耗時的頁面(超過60秒的)

cat access_log |awk ‘($NF > 60 && $7~/\.php/){print $7}’ |sort -n|uniq -c|sort -nr|head -100