文档章节

用cat统计apache日志ip

布几岛
 布几岛
发布于 2014/06/24 10:09
字数 306
阅读 174
收藏 6
  • 用cat统计apache日志ip

     

    现有一段apache的日志,需要从日志中提取出访问量最大的IP。使用shell实现。 

  • 日志如下(只是举例,故数据量较小): 

     

    $ more aa.txt 

    127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 

    192.168.1.100 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 

    192.168.1.100 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 

    192.168.1.100 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 

     

    1.要提取访问量最大的IP,需要先从日志中把IP段提取出来。 

     

    $ cat aa.txt |awk -F " " '{print $1}' 

    127.0.0.1 

    192.168.1.100 

    192.168.1.100 

    192.168.1.100 

     

    (PS,此处也可以用cut命令实现。 

     

    $ cut -d " " -f 1 aa.txt 

    127.0.0.1 

    192.168.1.100 

    192.168.1.100 

    192.168.1.100) 

     

    2.对IP进行统计,看各IP出现过多少次 

     

    $ cat aa.txt |awk -F " " '{print $1}' |uniq -c 

          1 127.0.0.1 

          3 192.168.1.100 

     

    (PS:wc -l也可以对行数统计,但统计的是整体的,所有行数。不会分类统计) 

     

    3.按IP出现次数从大到小排列 

     

    $ cat aa.txt |awk -F " " '{print $1}' |uniq -c |sort -r 

          3 192.168.1.100 

          1 127.0.0.1 

     

    4.再次提取出IP段 

     

    $ cat aa.txt |awk -F " " '{print $1}' |uniq -c |sort -r |awk '{print $2}' 

    192.168.1.100 

    127.0.0.1 

     

    5.选择第一行 

     

    $ cat aa.txt |awk -F " " '{print $1}' |uniq -c |sort -r |awk '{print $2}' |head -1 

    192.168.1.100

     


本文转载自:http://www.2cto.com/os/201211/168233.html

共有 人打赏支持
布几岛
粉丝 6
博文 37
码字总数 10513
作品 0
海淀
高级程序员
从apache日志中找出访问IP

apache日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问次数。 cat access.log |awk '{print $1}' |sort |uniq -c |sort -rn |wc -l 统计访问IP的总数...

技术小阿哥
2017/11/28
0
0
网站日志分析

1.查看TCP连接状态 netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}' netstat -n | awk '/^tcp/ {++state[$N......

tanp398
2015/11/26
0
0
linux下grep分析apache日志的命令集合

linux下grep分析apache日志的命令集合,不可错过的好文章,有了这些命令,秒杀江湖中大部分的apache日志分析。 实例: 月份英文简写英文全称 一月Jan.January 二月Feb.February 三月Mar.Mar...

hmc0316
2013/03/06
0
0
常用linux高级命令

-vi 编辑器 先进入命令模式(Esc) :/str 查找str,按n下一处,按N上一处 :1 回首行 :$到尾行 - web 访问日志统计(tomcat/apache/nginx) 1.根据访问IP统计UV awk ‘{print $1}’ access.log.t...

yown
2016/05/25
0
0
常用的apache access日志分析脚本

apache访问日志分析 当前WEB服务器中联接次数最多的ip地址 #netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -nr 查看日志中访问次数最多的前10个IP #cat access_log |cut -d ' ' -f...

WuHonghai
2012/09/03
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
6
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
4
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部