日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 访问日志ip排序,Linux通过日志文件统计IP访问次数排序

發(fā)布時間:2023/12/10 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 访问日志ip排序,Linux通过日志文件统计IP访问次数排序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

假設我的日志文件內(nèi)容如下:

218.92.217.53 - - [22/Nov/2017:17:26:27 +0800] "GET /images/rand HTTP/1.0" 200 1785 "https://www.baidu.com/index.shtml" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)" "sso.baidu.com" 36.105.87.151 4000

182.118.27.97 - - [22/Nov/2017:17:26:28 +0800] "GET /images/rand HTTP/1.0" 200 1588 "https://www.baidu.com/index.shtml" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0; .NET4.0C; InfoPath.3; .NET4.0E; CIBA)" "sso.baidu.com" 123.158.3.19 4000

218.92.217.53 - - [22/Nov/2017:17:26:28 +0800] "GET /images/rand HTTP/1.0" 200 1668 "https://www.baidu.com/index.shtml" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)" "sso.baidu.com" 115.153.175.138 3000

218.92.217.51 - - [22/Nov/2017:17:26:28 +0800] "GET /images/rand HTTP/1.0" 200 1501 "https://www.baidu.com/index.shtml" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "sso.baidu.com" 125.67.186.42 3000

218.92.217.53 - - [22/Nov/2017:17:26:28 +0800] "GET /images/rand HTTP/1.0" 200 1720 "https://www.baidu.com/index.shtml" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)" "sso.baidu.com" 27.17.66.35 3000

182.118.27.97 - - [22/Nov/2017:17:26:28 +0800] "GET /images/rand HTTP/1.0" 200 1718 "https://www.baidu.com/index.shtml" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0)" "sso.baidu.com" 113.0.64.155 5000

218.92.217.51 - - [22/Nov/2017:17:26:28 +0800] "GET /images/rand HTTP/1.0" 200 1762 "https://www.baidu.com/index.shtml" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)" "sso.baidu.com" 183.8.202.141 3000

其中倒數(shù)第二個字段是客戶端真實IP地址,現(xiàn)在我想根據(jù)客戶IP統(tǒng)計訪問次數(shù),看看是否有異常攻擊。就可以寫一個shell命令如下:

cat logs/baidu.access.log | awk '{print $(NF-1)}' | sort | uniq -c | sort -k 1 -n -r|head -10

解釋一下上面的命令,

cat logs/baidu.access.log就是輸出我要統(tǒng)計的日志。

awk后面跟一個指令,awk '{print $(NF-1)}'就是打印出日志內(nèi)容的第幾列。$1就是第一列,$(NF)就是總列數(shù),那么我要根據(jù)倒數(shù)第二列統(tǒng)計,就是$(NF-1)。

sort就是對內(nèi)容進行排序,默認是自然順序排序。

uniq指令用于排重,而是只適用于相鄰兩行相同的情況。所以一般結(jié)合sort使用。即先sort排序再排重。

uniq -u是只顯示唯一的記錄行。uniq -c是顯示有重復記錄的情況。

sort -k 1 -n -r這個指令,參看下面sort指令參數(shù)的詳細說明

sort選項與參數(shù):

-f ?:忽略大小寫的差異,例如 A 與 a 視為編碼相同;

-b ?:忽略最前面的空格符部分;

-M ?:以月份的名字來排序,例如 JAN, DEC 等等的排序方法;

-n ?:使用『純數(shù)字』進行排序(默認是以文字型態(tài)來排序的);

-r ?:反向排序;

-u ?:就是 uniq ,相同的數(shù)據(jù)中,僅出現(xiàn)一行代表;

-t ?:分隔符,默認是用 [tab] 鍵來分隔;

-k ?:以哪個區(qū)間 (field) 來進行排序的意思

所以 sort -k 1 -n -r 指令的意思就是對第一列按照純數(shù)字逆序排序。

這個純數(shù)字是哪里來的呢?是uniq -c來的,原來剩下一列就是IP了,當執(zhí)行uniq -c指令時,它會統(tǒng)計重復記錄的次數(shù)并把這次數(shù)顯示在第一列。所以現(xiàn)在有兩列了,第一列是重復次數(shù),第二列是IP。所以這里是按照重復次數(shù)排序。

head -10這個不用說了吧,顯示前10行。

同理,如果你要統(tǒng)計URL的訪問情況就awk url那一列就行了。

總結(jié)

以上是生活随笔為你收集整理的linux 访问日志ip排序,Linux通过日志文件统计IP访问次数排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。