分析日誌中訪問最大的前100IP

2021-09-22 17:25:45 字數 908 閱讀 3495

有乙個10g大的apache訪問日誌,要求找出訪問/stat.php面頁次數大於10000次的前100個ip。

日誌樣本:211.11.129.181 — [26/mar/2015:03:00:01 +0800] 「get/stat.php?pid=016 http/1.1」 302 「-」 「-」 「」mozllia/4.0(compatible;msie 6.0;windows nt 5.1)」

分析:10g日誌很大了,直接grep或者awk去分析肯定很慢,對記憶體消耗也是非常大的。若伺服器配置較低,可以考慮把日誌切割,比如切割成100個100m的檔案,然後再針對這100個檔案分別去統計排名前100的ip,得出結果後合併到乙個檔案中,再進行一次分析。

所以使用shell指令碼來:

sta() 』|sort -n |unic -c|sort -n|tail -100

logfile=/data/logs/access.log

mkdir /data/logs/tmp

cd /data/logs

split -b 100m access.log smallfile

mv smallfile* tmp

cd tmp

for f inls smallfile*

dosta $f >> top100.txt

done

count_sum() |wc -l

sum=$[$sum+$n]

echo $sum $1

done

for ip inawk 『』 top100.txt|sort -n |uniq

docount_sum $ip >> ip.txt

done

awk 『$1>10000』 ip.txt|sort -nr |head -100

10分鐘精通Nginx訪問日誌分析統計

利用流計算 或離線統計分析nginx的access log,從日誌中挖掘有用資訊。利用流計算 離線計算引擎可以支援個性化需求,但需要搭建一套環境,並且在實時性以及分析靈活性上比較難平衡。remote user 客戶端使用者名稱 time local 伺服器時間 request 請求內容,包括方法名,...

查詢10天前的日誌並刪除

查詢10天前的日誌並刪除 bin bash source etc profile 刪除日誌 find usr local apache tomcat 7.0.68 logs type f mtime 10 exec rm rfv find usr local apache tomcat 8.0.32...

查詢10天前的日誌並刪除

查詢10天前的日誌並刪除 bin bash source etc profile 刪除日誌 find usr local apache tomcat 7.0.68 logs type f mtime 10 exec rm rfv find usr local apache tomcat 8.0.32...