【刷题】面筋-linux-如何查找出现频率最高的100个ip地址
2023-09-14 09:00:39 时间
命令:
- cat + 文件名 + 管道 + 各种限制条件
简单示例:有如下文件test.txt
1 134.102.173.43
2 134.102.173.43
3 134.102.171.42
4 134.102.170.9
-
要统计出现次数最多的IP可以利用以下shell脚本:
- cat test.txt | awk '{print $2}' | sort | uniq -c | sort -n -r | head -n 1
-
参数含义:
-
(针对首行不是IP地址信息的情况)tail -n +3 :去掉上面用红色标明的两行。
-
awk '{ print $5}':取数据的低5域(第5列),本例中是第2列,因此将5写为2。
-
(多加的限制,可忽略)cut -d : -f 1 :取蓝色部分前面的IP部分。
-
sort:对IP部分进行排序。
-
uniq -c:打印每一重复行出现的次数,并去掉重复行
-
sort -n -r:按照重复行出现的次序倒序排列。
-
head -n 5:取排在前5位的IP,本例中是找"最多",因此5可以写为1.
-
当前WEB服务器中联接次数最多的ip地址
-
命令: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
-
-
其他示例:
netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -nr
通过查看日志access_log文件进行统计
-
查看日志中访问次数最多的前10个IP
- cat access_log |cut -d ' ' -f 1 | sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 | less
-
查看日志中出现100次以上的IP
- cat access_log |cut -d ' ' -f 1 | sort |uniq -c | awk '{if ($1 > 100) print $0}'|sort -nr | less
-
查看最近访问量最高的文件
- cat access_log | tail -10000 | awk '{print $7}' | sort | uniq -c | sort -nr | less
-
查看日志中访问超过100次的页面
- cat access_log | cut -d ' ' -f 7 | sort |uniq -c | awk '{if ($1 > 100) print $0}' | less
-
统计某url,一天的访问次数
- cat access_log | grep '12/Aug/2009' | grep '/images/index/e1.gif' | wc | awk '{print $1}'
-
前五天的访问次数最多的网页
- cat access_log | awk '{print $7}' | uniq -c | sort -n -r | head -20
-
从日志里查看该ip在干嘛
- cat access_log | grep 218.66.36.119 | awk '{print $1"\t"$7}' | sort | uniq -c | sort -nr | less
-
列出传输时间超过 30 秒的文件
- cat access_log | awk '($NF > 30){print $7}' | sort -n | uniq -c | sort -nr | head -20
-
列出最最耗时的页面(超过60秒的)
- cat access_log | awk '($NF > 60 && $7~/.php/){print $7}' | sort -n | uniq -c | sort -nr | head -100
参考链接
END
相关文章
- 三种方法告诉你项目超过255个摄像机怎么设置IP?什么是公网ip?什么又是内网ip?为什么ip地址通常以192.168开头?
- 设置Linux系统中网络IP地址的方法(怎么设置linux的ip)
- 宝塔Linux:领先的开源Linux解决方案(宝塔linux怎么样)
- 安装标题:Linux系统下安装Oracle数据库步骤(linux版oracle)
- Linux平台上运行PHP脚本的快乐之旅(linux运行php)
- 解锁Linux文件地址的奥秘(linux文件地址)
- Linux绑定IP:掌握网络技术框架(linux绑定ip)
- Linux目录加固:安全保障数据安全(linux目录加密)
- Linux系统虚拟IP设置指南(linux虚拟ip设置)
- Linux指定IP访问:实现网络安全性(linux指定ip访问)
- 正确同步Linux系统时间(linux下时间同步)
- 器IP探索Linux下服务器IP的方法(linux怎么查看服务)
- Linux的发展史:从分支到整体(linux的分支)
- Linux发展历程:从发展分支说起(linux的分支)
- 探查Linux下本机IP地址的方法(linux查看本机地址)
- Linux下的网络模型:构建基础之上的思考(linux网络模型)
- 安装Linux下JDK1.5安装指南(linux下jdk1.5)
- 学习Linux,一路挑战至精通(精通linux需要多久)
- 如何更改Linux系统的默认shell?(linux更改shell)
- 如何在Linux中查看访问IP?(linux查看访问ip)
- Linux判断文件大小的实现方法(linux判断文件大小)
- Linux地址空间:强大而安全(linux地址空间)
- 布谷鸟Linux:开源操作系统正在革新科技世界(布谷鸟linux)
- Linux如何设置固定IP地址(linux设置固定ip)
- Linux主机地址的简单搜索技巧(linux主机地址)
- Linux如何关闭JBoss?(linux关闭jboss)
- Linux快速配置IP地址实现网络连接(linux怎么配置ip地址)