您好,登錄后才能下訂單哦!
本篇內容主要講解“Shell怎么統計ip訪問情況并分析訪問日志”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Shell怎么統計ip訪問情況并分析訪問日志”吧!
有日志 1.log,部分內容如下:
112.111.12.248 – [25/Sep/2013:16:08:31 +0800]formula-x.haotui.com“/seccode.php?update=0.5593110133088248″ 200″http://formula?x.haotui.com/registerbbs.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1;)”61.147.76.51 – [25/Sep/2013:16:08:31 +0800]xyzdiy.5d6d.com“/attachment.php?aid=4554&k=9ce51e2c376bc861603c7689d97c04a1&t=1334564048&fid=9&sid=zgohwYoLZq2qPW233ZIRsJiUeu22XqE8f49jY9mouRSoE71″301″http://xyzdiy.5d6d.com/thread-1435-1-23.html” “Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”
統計出每個 IP 的訪問量有多少
這種分析日志的需求,在平時工作中很常見,而且找運維工作時的筆試題里面出現頻率也非常多。
根據日志內容,可以看到 IP 地址就是第一段內容,所以只需要把 1.log 的第一段給過濾出來,然后近一步統計每一個 IP 的量即可。
過濾第一段,使用 awk 就可以很容易得到,而統計每個 IP 的訪問量則需要排序然后再計算數量,
排序使用 sort 命令,統計每個 IP 訪問量用 uniq。
awk '{print $1}' 1.log |sort -n |uniq -c |sort -n
1. awk 命令在分段方面還是比較有優勢的,這里的{print $1}講第一段打印出來,awk 可以用-F 指定分隔符,如果不指定分隔符,默認就以空白字符(比如空格、Tab 等),本題中,IP 地址就是在第一段。 2. sort 命令是排序的命令,-n 選項表示以數字的形式排序,如果不加-n,則以 ASCII 排序,本題中的 IP 地址以數字的形式排序更容易區分。 3. uniq 命令是用來去重復的,一個文本中如果有多行內容是一模一樣的,使用 uniq 命令就可以把相同內容的行給刪除掉,只留一行。而-c 選項的作用是計算重復的行數,所以在此題中使用 uniq -c 正好可以計算 IP 地址的訪問數量。不過,大家一定要注意,uniq 去重的前提是首先要排序。 4. 本題答案里最后沒得 sort -n 意思是按訪問量大小來排序,請求量越大的 IP 排在越后面,如果要想排在前面,可以加一個-r 選項,即 sort –nr
到此,相信大家對“Shell怎么統計ip訪問情況并分析訪問日志”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。