如何統計日誌裏面訪問次數最多的IP

如何統計日誌裏面訪問次數最多的IP

    今天在論壇上看見有人在問這個問題,後面很多SHELL的高手在討論,真的讓我再一次深切的感受到了SHELL的博大精深,爲之震撼。

   先看看我要處理的文件內容

[root@server2 ~]# netstat -ntu

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 127.0.0.1:8652 127.0.0.1:40193 TIME_WAIT

tcp 0 0 127.0.0.1:8652 127.0.0.1:40192 TIME_WAIT

tcp 0 0 127.0.0.1:8652 127.0.0.1:40196 TIME_WAIT

tcp 0 0 127.0.0.1:8652 127.0.0.1:40199 TIME_WAIT

tcp 0 0 127.0.0.1:8652 127.0.0.1:40201 TIME_WAIT

tcp 0 0 127.0.0.1:8652 127.0.0.1:40204 TIME_WAIT

tcp 0 0 127.0.0.1:8652 127.0.0.1:40207 TIME_WAIT

tcp 0 0 127.0.0.1:8652 127.0.0.1:40210 TIME_WAIT

tcp 0 0 192.168.32.62:41682 192.168.47.207:5432 TIME_WAIT

tcp 0 0 192.168.32.62:41685 192.168.47.207:5432 TIME_WAIT

    netstat -ntu | tail -n +3 | awk '{ print $5}' | cut -d : -f 1 | sort | uniq -c| sort -n -r | head -n 5

    tail -n +3 :去掉上面用紅色標明的兩行。
   awk '{ print $5}':取數據的低5域(第5列),上面藍色標明。
   cut -d : -f 1 :取藍色部分前面的IP部分。
   sort:對IP部分進行排序。
   uniq -c:打印每一重複行出現的次數。(並去掉重複行)
    sort -n -r:按照重複行出現的次序倒序排列。
    head -n 5:取排在前5位的IP 。

[root@server2 ~]# netstat -ntu | tail -n +3|awk '{ print $5}' | cut -d : -f 1 | sort | uniq -c| sort -n -r | head -n 5
8 127.0.0.1
2 192.168.47.207

    這樣我們就很清楚的得到了我們想要的結果。

   本文參考了論壇上各位高手的帖子,受益匪淺。

愛慕爾商城歡迎您的光臨!
穿衣打扮  
城市物語

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章