linux分析apache日誌獲取最多訪問的前10個IP

apache日誌分析能夠得到不少有用的信息,如今來試試最基本的,獲取最多訪問的前10個IP地址及訪問次數。php

既然是統計,那麼awk是必不可少的,好用而高效。apache

命令以下:服務器

awk '{a[$1] += 1;} END {for (i in a) printf("%d %s\n", a[i], i);}' 日誌文件 | sort -n | tailless

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

以上參數能夠略做修改顯示更多的數據,好比將tail加上-n參數等,另外日誌格式不一樣命令也可能須要稍做修改。日誌

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

#netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -nrip

 

查看日誌中訪問次數最多的前10個IPawk

#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|grep '12/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

相關文章
相關標籤/搜索