如何統計日誌裡面訪問次數最多的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
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 -d : -f 1 | 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)