当前位置:  操作系统/服务器>移动开发 iis7站长之家

shell统计pv和uv、独立ip的方法

    来源: 互联网  发布时间:2014-10-16

    本文导语:  每天分析日志的哥们实在伤不起,经常需要给出PV,UV,独立IP等一些统计值,使用C/C++,java都可以写,过程是这样的,先读取文件,逐行扫描,把能标记的值放入数据结构中,排重得出最终结果,其实Linux本身有很强大的文本处...

每天分析日志的哥们实在伤不起,经常需要给出PV,UV,独立IP等一些统计值,使用C/C++,java都可以写,过程是这样的,先读取文件,逐行扫描,把能标记的值放入数据结构中,排重得出最终结果,其实Linux本身有很强大的文本处理功能,完全可以用shell + 一些文本小工具得出结果。

Nngix输出的access log文件如下:

日志文件代码 

代码如下:

192.168.1.166 - - 119272312 [05/Nov/2011:16:06:59 +0800] "GET /index.html HTTP/1.1" 200 370 "http://192.168.1.201/" "Chrome/15.0.874.106" "-" 
192.168.1.166 - - 119272312 [05/Nov/2011:16:06:59 +0800] "GET /poweredby.png HTTP/1.1" 200 3034 "http://192.168.1.201/" "Chrome/15.0.874.106" "-" 
192.168.1.177 - - 1007071650 [05/Nov/2011:16:06:59 +0800] "GET /favicon.ico HTTP/1.1" 404 3650 "-" "Chrome/15.0.874.106" "-" 
192.168.1.178 - - 58565468 [05/Nov/2011:16:17:40 +0800] "GET / HTTP/1.1" 200 3700 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" "-" 
192.168.1.166 - - 119272312 [05/Nov/2011:16:17:40 +0800] "GET /nginx-logo.png HTTP/1.1" 200 370 "http://192.168.1.201/" "Chrome/15.0.874.106" "-" 
 

PV很简单,大致就是统计某个URL的访问次数,例如统计/index.html的访问次数

代码如下:
 
grep "/index.html" /var/log/nginx/access.log –c 

UV呢,我们根据用户标识(第四列) ,首先需要字符串截取,使用cut命令,以空格符号分割,-d “ ”, 再取第四列-f 4,然后这里需要排重,需要使用uniq工具,uniq速度很快,但是基于就近排重,前一个后一个一样会排重,之间间隔了不一样的,就不行了,这就必须使用sort工具来对标识符进行排序,排序后再使用uniq工具就可以达到目的,之间我们用管道符号链接, 最后再用 wc –l 输出统计数

比如我们统计访问了/index.html这也页面的uv:

代码如下:

grep "/index.html" /var/log/nginx/access.log | cut –d “ ” –f 4| sort | uniq | wc –l 


独立IP:

假设我们要统计整站的独立IP,那么我们不需要使用 grep来匹配具体页面,只需要使用cat输出即可:

代码如下:

cat /var/log/nginx/access.log | cut –d “ ” –f 1 | sort| uniq | wc -l 


都木有使用强大的awk,就完成了基本的统计需求:)

    
 
 

您可能感兴趣的文章:

  • shell脚本实现的网站日志分析统计(可以统计9种数据)
  • 讲起来容易,实现有点难度,请问如何用shell写这个统计?
  • 求一个shell脚本 统计文件数目并删除一些文件
  • 要对文件中包含特定字符串的行数进行统计,Shell脚本该如何写?急用!!在线等待
  • linux中 写shell程序,用于统计文件中关键字的个数
  • shell统计问题
  • 如何用shell统计日志文件里每一小时内的数据总量
  • 求助 shell中split命令如何实现文件分割 并统计分割文件个数。分割完之后,命名方式从 文件名.001 开始
  • 有用B_shell的么?我要将一个文件在后台反复读100遍,统计出总共花费的时间,应该怎么写?
  • 能否使用shell统计已存在文件的行数并写入当前文件
  • 使用shell脚本分析网站日志统计PV、404、500等数据
  • 如何用shell实现依文件1某个域到文件2查找满足条件记录并统计记录数后修改文件1
  • linux下统计appche站点IP访问量的shell脚本
  • 统计 cpu 内存 使用率的shell脚本代码
  • 牛人来帮忙解析一个shell脚本(用于统计一个进程的内存使用情况)
  • 统计网卡流量的两段shell脚本(使用ifconfig)
  • php与shell大文件数据统计与排序方法
  • 一个用了统计CPU 内存 硬盘 使用率的shell脚本
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎么判断shell的exec方法所执行的方法是否正确?
  • 请问RH9 的shell 下配置自带防火墙的方法,启动/关闭方法
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值
  • 对Shell 脚本加密的方法
  • 有没有方法在程序里改变shell的工作目录呢?
  • 在Shell脚本中有没有方便的XML解析方法阿
  • 请教shell写文件方法
  • Shell中调用、引用、包含另一个脚本文件的三种方法
  • linux shell进度条实现方法
  • 关于编写SHELL,实现更改当前目录的方法,请指教
  • 求shell下解压的方法
  • 请问shell里面有什么方法可以比较2个固定格式文件里面的某个域
  • Linux中执行shell脚本的4种方法总结
  • 最近学shell命令,但它大量的命令选项特别让人郁闷,不知道有什么方法可以记住这些选项?
  • Linux shell脚本中字符串连接的方法
  • Shell脚本中计算字符串长度的5种方法
  • 用shell脚本在mysql表中批量插入数据的方法
  • 我的linux的时间不对。我怎么用shell命令修改。不要告诉我Xwindows的方法!
  • 更改linux用户登录shell的操作方法
  • 用内置变量调试shell脚本的方法
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3