1. 程式人生 > >如何統計日誌裡面訪問次數最多的IP

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

[[email protected] ~]# netstat -ntu

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign AddressState

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

[[email protected] ~]# netstat -ntu | tail -n +3|awk '{ print $5}' | cut -: -f 1 |

 sort | uniq -c| sort --|head -n 5

8 127.0.0.1

2 192.168.47.207

相關推薦

如何統計日誌裡面訪問次數IP

[[email protected] ~]# netstat -ntu Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign AddressState tcp 0 0 127.

使用python找出nginx訪問日誌訪問次數的10個ip排序生成網頁

#encoding=utf-8 # 找到日誌中的top 10,日誌格式如下 #txt = '''100.116.167.9 - - [22/Oct/2017:03:55:53 +0800] "HEAD /check HTTP/1.0" 200 0 "-" "-" "-" ut = 0.001''' #n

linux分析apache日誌,如訪問次數的前10個IP訪問超過100次的頁面

apache日誌分析可以獲得很多有用的資訊,現在來試試最基本的,獲取最多訪問的前10個IP地址及訪問次數。 既然是統計,那麼awk是必不可少的,好用而高效。 命令如下: awk '{a[$1] += 1;} END {for (i in a) printf("%d

SHELL 分析 列出當天訪問次數IP

SHELL 分析日誌作者:lvtao釋出於:2013-7-3 14:58 Wednesday 分類:工具原始碼 列出當天訪問次數最多的IP 命令:cut -d- -f 1 /usr/local/apache2/logs/access_log |uniq -c | sort

從1億個ip中找出訪問次數IP

問題一:怎麼在海量資料中找出重複次數最多的一個演算法思想:方案1:先做hash,然後求模對映為小檔案,求出每個小檔案中重複次數最多的一個,並記錄重複次數。        然後找出上一步求出的資料中重複次數最多的一個就是所求(如下)。問題二:        網站日誌中記錄了使用

BAT面試上機題從3億個ip中找出訪問次數IP詳解

我們面臨的問題有以下兩點:1)資料量太大,無法在短時間內解決;2)記憶體不夠,沒辦法裝下那麼多的資料。而對應的辦法其實也就是分成1)針對時間,合適的演算法+合適的資料結構來提高處理效率;2)針對空間,就是分而治之,將大資料量拆分成多個比較小的資料片,然後對其各個資料片進行處理,最後再處理各個資料片的結果。原文

14海量日誌提取出現次數IP

    問題描述:現有某網站海量日誌資料,提取出某日訪問該網站次數最多的那個IP。     分析:IP地址是32位的二進位制數,所以共有N=2^32=4G個不同的IP地址, 如果將每個IP地址看做是陣列的索引的話,那麼需要建立一個unsigned count[N]的陣列,

演算法--統計文字中出現次數的單詞(字典樹)

統計一個文字中,出現次數最多的單詞:單詞全部小寫,單詞與單詞之間以空格間隔 1.利用字典  key為單詞  value為單詞出現的次數 def mostString(): dict = {} fr = open('preprocessing.txt')

sort +awk+uniq 統計檔案中出現次數的前10個單詞

原文地址:http://blog.sina.com.cn/s/blog_5dce657a01012ddi.html   作者:小新 例項cat logt.log|sort -s -t '-' -k1n |awk '{print $1;}'|uniq -c|sort -k1nr|head

js統計陣列中出現次數的元素

想來想去沒想出更好的解決方法。 思路就是在ana函式裡先遍歷一遍arr,維護一個數組newArr 用於將所有數值相同的放在陣列中的同一個塊內。另外一個數組unique 用於維護數值唯一,判斷當前的item是否已存在於newArr中。為了方便比較物件的數值相同,

linux中sort(統計檔案中出現次數的前10個單詞)

例項 cat logt.log|sort -s -t '-' -k1n |awk '{print $1;}'|uniq -c|sort -k1nr|head -100 使用linux命令或者shell實現:檔案words存放英文單詞,格式為每行一個英文單詞

使用heapq標準庫計算訪問次數的query

場景: 在日誌檔案中記錄著每次訪問的query,現在需要找到最熱門的10個query 利用heapq實現 我們首先定義資料結構 class Query(object): def __init__(self,term,count): sel

統計陣列中出現次數的元素並輸出

實驗過程中遇到一個實際問題:需要統計出10次計數的值中出現最多的一個數,比如輸入34 35 35 35 34 35 35 35 34 33 十個數,要求最終輸出35.如果出現兩個數同樣多,則輸出兩個元素中較小的那一個(也可以是較大的那一個,但是必須確定是其中一種)。 程式碼

統計字串中出現次數的字元及個數

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-eq

統計字串中出現次數的字母並輸出

/* *input:tester *output:e */ #include<stdio.h> #include<stdlib.h> //統計字串中出現次數最多的字母,如果字母出現次數相同,則按a-z字典序輸出第一個。 int countCharac

1、(topK問題)海量日誌資料,提取出某日訪問百度次數的10個IP

#include <iostream>#include <fstream>#include <string.h>#include <ctime>#include <hash_map>#include <sys/socket.h>#incl

Linux awk統計日誌中出現過的IP(或出現次數的N個IP)

awk是一個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。 awk的用法 awk 'BEGIN{ commands }

海量日誌資料,找出出現次數IP地址。

import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java

判斷一個字符串中出現次數的字符,統計這個次數

sdff BE 出現次數 div asd 遍歷 轉換成 arr str var str = ‘abaasdffggghhjjkkgfddsssss3444343‘; // 1.將字符串轉換成數組 var newArr = str.spl

返回(統計)一個列表中出現次數的元素

clas 列表 元素 center enter ax1 叠代器 orm {} 首先定義一個函數 函數內逐行依次解釋為: #定義一個函數def max1(lt):   dict1 = {} #建立一個空字典 s = set(lt)