统计日志文件里访问量前十的ip并按从多到少排列

Apache座位web服务器。访问日志名为ex.log

先找出IP段,然后进行数量统计,最后对数量进行数量排序,取出最大值。

# cut -d "" -f 1 ex.log|uniq -c|sort -r|head -1|awk ‘{print $2}‘

 1、取出IP段:

  # cut -d " " -f 1 clientuser.log

  127.0.0.1
  127.0.0.1
  192.168.1.100
  192.168.1.100
  192.168.1.100
  192.168.1.100
  192.168.1.110

  2、统计IP访问数量

  # cut -d " " -f 1 ex.log |uniq -c

  2 127.0.0.1
  4 192.168.1.100
1 192.168.1.110

  3、对统计好的IP访问数量排序

  # cut -d " " -f 1 ex.log |uniq -c|sort -r

  4 192.168.1.100
  2 127.0.0.1
  1 192.168.1.110

  4、取出访问量最大的IP及访问数量

  # cut -d " " -f 1 ex.log |uniq -c|sort -r|head -1

  4 192.168.1.100

  5、只显示IP

  # cut -d " " -f 1 ex.log |uniq -c|sort -r|head -1|awk ‘{print $2}‘

  192.168.1.100

解法1: cat access_log | awk  ’{print $1}’ | sort | uniq -c | sort -n -r | head -10

解法2:cat access_log | awk -F “- -” ‘{print $1}’ | sort -t . | uniq -c | sort -n -r | head -10

awk ‘{a[$1] += 1;} END {for (i in a) printf(“%d %s\n”, a[i], i);}’ 日志文件 | sort -n | tail

首先用awk统计出来一个列表,然后用sort进行排序,最后用tail取最后的10个。

以上参数可以略作修改显示更多的数据,比如将tail加上-n参数等,另外日志格式不同命令也可能需要稍作修改。

当前WEB服务器中联接次数最多的ip地址

#netstat -ntu |awk ‘{print $5}’ |sort | uniq -c| sort -nr

查看日志中访问次数最多的前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

列出10-12月访问量最大的100个IP从高到底排列,并列出每个IP的重复数量

#cat ex.log |grep -P  "(Oct|Nov|Dec)"|awk ‘{print $1}‘|sort|uniq -c|sort -k1 -nr|head -n 100

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

netstat -ntu | tail -n +3|awk ‘{ print $5}‘ | cut -d : -f 1 | sort | uniq -c| sort -n -r | head -n 5
8 127.0.0.1
2 192.168.47.27

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

时间: 2024-08-07 12:23:11

统计日志文件里访问量前十的ip并按从多到少排列的相关文章

统计apache日志文件里访问量前十的ip并按从多到少排列

解法1: cat access_log | awk  ’{print $1}’ | sort | uniq -c | sort -n -r | head -10 解法2:cat access_log | awk -F “- -” ‘{print $1}’ | sort -t . | uniq -c | sort -n -r | head -10 awk ‘{a[$1] += 1;} END {for (i in a) printf(“%d %s\n”, a[i], i);}’ 日志文件 | so

【python学习】日志文件里IP访问最多的3个

日志文件例子: #111.172.249.84 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.307

统计大文件里单词

转载统计大文件里,频数最高的10个单词,(C# TPL DataFlow版) 最近公司搞了一个写程序的比赛,要求从2G的文件里统计出出现频率最高的10个单词. 最开始的想法是使用字典树,后来发现字典树更适合用在找前缀上,在查找没有hash表效率高. 之后使用Hash表+DataFlow完成了功能,2G的文件处理在20秒以内(其实我有信心优化到10秒以内,但是太折腾了). 这是我的设计图: 为什么要形成那么多结果?因为我不想写锁,写锁会降低很多效率,而且也失去了线程的意义,每个线程做自己的工作,

Oracle 分组统计,抽取每组前十

/**2018年6月14日 潮州ORACEL 统计2017年用电量,按行业分类抽取用电量前十*/select * from (select t.yhbh 用户编号, t.yhmc 用户名称, t.jldbh 计量点编号, (select m.dmbmmc from npmis_xt_dmbm m where m.dmfl = 'YDLXDM' and m.dmbm = t.ydlbdm) 用电类型, (select m.dmbmmc from npmis_xt_dmbm m where m.dm

[linux] shell脚本编程-统计日志文件中的设备号发通知邮件

1.日志文件列表 比如:/data1/logs/2019/08/15/ 10.1.1.1.log.gz 10.1.1.2.log.gz 2.统计日志中的某关键字shell脚本 zcat *.gz|grep 关键字 |grep -oP "deviceid=[^=]+"|uniq|sort -u > /tmp/20190815.log date 格式化出年月等信息,拼接成路径 wc -l /tmp/20190815.log , 获取到行数 php /xxxxx/sendmail.ph

统计大文件里,频数最高的10个单词,(C# TPL DataFlow版)

最近公司搞了一个写程序的比赛,要求从2G的文件里统计出出现频率最高的10个单词. 最开始的想法是使用字典树,后来发现字典树更适合用在找前缀上,在查找没有hash表效率高. 之后使用Hash表+DataFlow完成了功能,2G的文件处理在20秒以内(其实我有信心优化到10秒以内,但是太折腾了). 这是我的设计图: 为什么要形成那么多结果?因为我不想写锁,写锁会降低很多效率,而且也失去了线程的意义,每个线程做自己的工作, 最后在把每个线程处理的结果汇总起来,这样也符合fork join 的设计. 而

『转』统计一个日志文件里,单词出现频率的shell脚本

原文地址:http://blog.csdn.net/taiyang1987912/article/details/39995175 #查找文本中n个出现频率最高的单词 #!/bin/bash count=$1 #$1是输出频率最高单词的个数 cat $2 | #$2是目标文本文件名称也可是是字符串 tr -cs "[a-z][A-Z][0-9]" "\n" | #tr是sed的简化,-c用前字符串中字符集的补集替换成后字符串即将不是字符和数字的单词替换换行 #-s删

apache的日志文件里不记录图片文件

找到: LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined  LogFormat "%h %l %u %t \"%r\" %>s %b" common  LogFormat "%{Referer}i -> %U" referer  LogF

Linux小技巧之:统计访问web网站的前10个IP

获得访问前10位的IP地址: [[email protected]:~]# cat /var/log/nginx/access.log | awk '{print $1}'|sort|uniq -c | sort -nr | head -10 10299 10.46.170.7 4 218.202.70.147 1 77.72.83.87 1 5.39.217.107 1 185.197.74.234 1 185.197.74.231 原文地址:https://www.cnblogs.com/F