分析日志中访问最大的前100IP

有一个10G大的apache访问日志,要求找出访问/stat.php面页次数大于10000次的前100个IP。

日志样本:211.11.129.181 — [26/Mar/2015:03:00:01 +0800] “GET/stat.php?pid=016 HTTP/1.1” 302 “-” “-” “”Mozllia/4.0(compatible;MSIE 6.0;Windows NT 5.1)”

分析:10G日志很大了,直接grep或者awk去分析肯定很慢,对内存消耗也是非常大的。若服务器配置较低,可以考虑把日志切割,比如切割成100个100M的文件,然后再针对这100个文件分别去统计排名前100的ip,得出结果后合并到一个文件中,再进行一次分析。

所以使用shell脚本来:

!/bin/bash

sta() {

grep ‘/stat.php’ $1|awk ‘{print $1}’|sort -n |unic -c|sort -n|tail -100

}

logfile=/data/logs/access.log

mkdir /data/logs/tmp

cd /data/logs

split -b 100M access.log smallfile

mv smallfile* tmp

cd tmp

把分割后的小文件里面的ip top100计算出来

for f in ls smallfile*

do

sta $f >> top100.txt

done

编写函数,计算每个ip出现的次数

count_sum() {

sum=0

for f in ls smallfile*

do

n=grep “$1” $f|awk ‘{print $1}|wc -l

sum=$[$sum+$n]

echo $sum $1

done

}

把得到的全部ip去重,作为遍历对象,把所有ip出现次数全部算出来

for ip in awk ‘{print $2}’ top100.txt|sort -n |uniq

do

count_sum $ip >> ip.txt

done

先把ip大于10000次的过滤出来,然后按ip的次数排序,得到前100个

awk ‘$1>10000’ ip.txt|sort -nr |head -100

时间: 2024-09-02 03:12:46

分析日志中访问最大的前100IP的相关文章

周翔:分析SEO中“三天进前一”的现象

今天又准备熬通宵了,开忙前,抽点时间来谈谈最近SEO行业的一些变化和心得,近一年周翔一直在关注一个SEO技术领域"前2页,保证三天上第一或者前三."(下面简称为:保前一)也做过一段时间的研究,得到不少心得,今天和大家来分享一下! 首先网站必须保证有一定基础,也就是在前二十位以内,可能很多朋友会问:"为什么会要这个基础?"周翔认为在前二十位的网站一般都不存在沙盒现象,不会出现"卡壳"的现象,随时都有上首页的机会,至于网站的那方面质量可以提升,这个就

Linux定时切割Nginx访问日志并删除指定天数前的日志记录

说明: 操作系统:CentOS 站点1:bbs .111cn.net 站点2:sns .111cn.net Nginx安装路径:/usr/local/nginx Nginx配置文件路径:/usr/local/nginx/conf/nginx.conf 站点1配置文件路径:/usr/local/nginx/conf/vhost/bbs.111cn.net.conf 站点2配置文件路径:/usr/local/nginx/conf/vhost/sns.111cn.net.conf 目的: 1.对站点1

nginx访问日志并删除指定天数前的日志记录配置方法_nginx

说明: 操作系统:CentOS 站点1:bbs.jb51.net 站点2:sns.jb51.net Nginx安装路径:/usr/local/nginx Nginx配置文件路径:/usr/local/nginx/conf/nginx.conf 站点1配置文件路径:/usr/local/nginx/conf/vhost/bbs.jb51.net.conf 站点2配置文件路径:/usr/local/nginx/conf/vhost/sns.jb51.net.conf 目的: 1.对站点1和站点2的n

linux下shell及awk统计日志中相同ip的访问次数

awk统计ip访问次数 现在有一个文件,数据量大概在200多万条记录,想用shell的awk做统计,文件的格式如下 #关键字#URL#IP地址# test|123|1 test|123|1 test|123|2 test2|12|1 test2|123|1 test2|123|2 现在想要统计的结果是:查看同一个关键字和URL总的访问的次数,以及多少个不同的IP,输出到一个文件中 SQL的实现就很简单 select keyword ,url ,count(1),count(distinct IP

如何从日志中统计网站流量

看到这个题目,可能有人就会说了,我们直接在网站上安装一个第三方(51啦,cnzz)统计代码不就能统计出网站流量吗,干嘛还要去分析日志呢?呵呵 ,我给你提供几个数字,你看完之后肯定不会这样说了.   上图是某个安装51啦统计代码的网站,在百度站长工具里的页面优化建议中可以看到,一个统计代码需要3次请求.我们假设这3次请求需要耗时0.01秒(也许会更多).如果每天搜索引擎从你的网站抓取10000个页面,就需要多耗时10000*0.01=100秒.我们按照搜索引擎下载一个页面需要1秒的时间,如果不安装

[原创]systemtap脚本分析系统中dentry SLAB占用过高问题

摘要 利用systemtap脚本分析系统中dentry SLAB占用过高问题 原创文章:来自systemtap脚本分析系统中dentry SLAB占用过高问题 背景 长时间运行着的tengine主机有内存占用75%以上的报警. 操作系统版本: 2.6.32.el6.x86_64 原因定位 收集内存使用的相关信息如下: 因内存占用率报警mem:76.28%先看一下内存的总体使用状况,从下图中可以看出used占用较高,buffers/cached占用较少(关于cached占用过高的分析处理请参见另一

c#.NET中日志信息写入Windows日志中解决方案_C#教程

1. 目的   应用系统的开发和维护离不开日志系统,选择一个功能强大的日志系统解决方案是应用系统开发过程中很重要的一部分.在.net环境下的日志系统解决方案有许多种,log4net是其中的佼佼者.  在Windows2000及以上操作系统中,有一个Windows日志系统,它包括应用程序(Application)事件日志.系统(System)日志和安全(Security)日志,事件日志也可以是自定义日志.在.net Framework中也提供了相应的类和接口来使用应用程序事件日志或者自定义事件日志

网站诊断分析工作中常用的几个工具

中介交易 SEO诊断 淘宝客 云主机 技术大厅 Google管理员工具 对于网站诊断来说,由于要诊断网站在搜索引擎中的表现和网站异常,那么在对索引.链接指向和蜘蛛抓取等方面的分析就显得很重要.Google管理员工具不但提供了完善的数据分析,还能指出网站存在的问题.在诊断分析工作中,37网络认为用的最多的三个栏目是:搜索流量.Google索引和抓取.搜索流量栏目中我们可以查询到关键词搜索查询.链接和手动操作.值得一提的是,指向您网站的链接功能尤其给力;不但可以详细检测出与自己网站链接的对象,还能通

HTTPERR的日志中出现大量Timer_MinBytesPerSecond,Timer_ConnectionIdle错误_win服务器

在\LogFiles\HTTPERR的日志中发现了大量Timer_MinBytesPerSecond,Timer_ConnectionIdle错误, 根据网上的介绍,做了如下更改: 1) 从 IIS 管理器右键单击 本地计算机 选择 属性.勾选允许直接编辑配置数据库. 2) 在记事本中打开 C:\Windows\system32\inetsrv\MetaBase.xml 文件, 搜索MinFileBytesPerSec,将 MinFileBytesPerSec 设置从 240 更改为 0. 搜索