shell统计ip访问情况并分析访问日志
有日志 1.log,部分内容如下:
112.111.12.248 – [25/Sep/2013:16:08:31 +0800]formula-x.haotui.com“/seccode.php?update=0.5593110133088248″ 200″http://formula�x.haotui.com/registerbbs.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1;)”61.147.76.51 – [25/Sep/2013:16:08:31 +0800]xyzdiy.5d6d.com“/attachment.php?aid=4554&k=9ce51e2c376bc861603c7689d97c04a1&t=1334564048&fid=9&sid=zgohwYoLZq2qPW233ZIRsJiUeu22XqE8f49jY9mouRSoE71″301″http://xyzdiy.5d6d.com/thread-1435-1-23.html” “Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”
统计出每个 IP 的访问量有多少
习题分析
这种分析日志的需求,在平时工作中很常见,而且找运维工作时的笔试题里面出现频率也非常多。
根据日志内容,可以看到 IP 地址就是第一段内容,所以只需要把 1.log 的第一段给过滤出来,然后近一步统计每一个 IP 的量即可。
过滤第一段,使用 awk 就可以很容易得到,而统计每个 IP 的访问量则需要排序然后再计算数量,
排序使用 sort 命令,统计每个 IP 访问量用 uniq。
习题答案
awk '{print $1}' 1.log |sort -n |uniq -c |sort -n
答案解析
awk 命令在分段方面还是比较有优势的,这里的{print $1}讲第一段打印出来,awk 可以用-F 指定分隔符,如果不指定分隔符,默认就以空白字符(比如空格、Tab 等),本题中,IP 地址就是在第一段。
sort 命令是排序的命令,-n 选项表示以数字的形式排序,如果不加-n,则以 ASCII 排序,本题中的 IP 地址以数字的形式排序更容易区分。
uniq 命令是用来去重复的,一个文本中如果有多行内容是一模一样的,使用 uniq 命令就可以把相同内容的行给删除掉,只留一行。而-c 选项的作用是计算重复的行数,所以在此题中使用 uniq -c 正好可以计算 IP 地址的访问数量。不过,大家一定要注意,uniq 去重的前提是首先要排序。
本题答案里最后没得 sort -n 意思是按访问量大小来排序,请求量越大的 IP 排在越后面,如果要想排在前面,可以加一个-r 选项,即 sort –nr
shell统计ip访问情况并分析访问日志的更多相关文章
- 案例三:shell统计ip访问情况并分析访问日志
题目要求 有日志 1.log,部分内容如下: 112.111.12.248 – [25/Sep/2013:16:08:31 +0800]formula-x.haotui.com"/secco ...
- [apache]用shell分析网站的访问情况
随着网站正式运行,我们可以通过通用的免费日志分析工具比如awstats获得一些实际访问网站的信息,例如每天ip量,pv量,用户所用的的浏览器,用户所用的操作系统等,但是有时候希望通过手工方式从WEB日 ...
- 用shell统计访问日志里每个ip访问次数【转】
今天,要统计一个系统的每个ip访问次数,于是我找到该系统访问日志,并写脚本实现. 访问日志情况: [root@qular ~]# cd /usr/local/nginx/logs/ [root@q ...
- 网站每日PV/IP统计/总带宽/URL统计脚本分享(依据网站访问日志)
在平时的运维工作中,我们运维人员需要清楚自己网站每天的总访问量.总带宽.ip统计和url统计等.虽然网站已经在服务商那里做了CDN加速,所以网站流量压力都在前方CDN层了像每日PV,带宽,ip统计等数 ...
- shell脚本分析 nginx日志访问次数最多及最耗时的页面
当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在 ...
- Android根据内网外网连接情况配置服务器访问IP
新项目的app,可通过内网和外网的服务器ip进行请求访问,但是客户提供了专业终端,终端在wifi情况下走外网内网都可以,但关闭wifi则只能走4G专网,也就是只能走内网. 可前往我的小站查看:Andr ...
- 如何分析apache日志[access_log(访问日志)和error_log(错误日志)]
如何分析apache日志[access_log(访问日志)和error_log(错误日志)] 发布时间: 2013-12-17 浏览次数:205 分类: 服务器 默认Apache运行会access_l ...
- Apache服务器访问过慢分析及解决
起因:线上的一台服务器,最近总是出现 访问 很慢的情况发生,点击一个链接要2秒钟以上才能打开,按照我们对于访问人数的估计,服务器应该不至于响应这么慢,从而需要针对这个问题进行分析,来解决网站访问过慢. ...
- Nginx+iptables屏蔽访问Web页面过于频繁的IP(防DDOS,恶意访问,采集器)
通过分析nginx的日志来过滤出访问过于频繁的IP地址,然后添加到nginx的blockip.conf,并重启nginx 脚本如下: #!/bin/shnginx_home = /Data/app_1 ...
随机推荐
- Linux命令——procinfo
简介 proc文件系统是一个虚拟文件系统,包含有关进程和系统信息的文件. proc 文件系统开机时自动挂载并映射到/proc目录.许多程序从/proc目录中检索信息,对其进行处理并使其易于用于各种目的 ...
- IDEA类的旁边有个对勾
说明该类添加到IDEA的书签栏去了,在IDEA左侧下方有个Favorites选项,在这里的BookMarks中可以看到这个类. 取消方法: 选中这个类,按F11即可取消
- POJ 2155 Matrix[树状数组+差分]
原题链接:https://vjudge.net/problem/POJ-2155 题目大意 给定 n* n 矩阵A,其元素为0或1. A [i][j] 表示第i行和第j列中的数字.最初全为0. 我们有 ...
- 大数据之路week06--day03(jdk8新特性 Lambda表达式)
为什么使用Lambda表达式?(做为初学者接触这个新的语法,会很懵逼,说道理,我在接触到这一块的时候,语法规则我看到了也很懵逼,因为这个和逻辑的关系不是很大,但就是作为一种新的语法出现,一时间很难接受 ...
- git将一个分支的内容替换为另一分支内容
假设我想将我的linux分支内容替换master分支的内容. # 切换到master分支 git checkout master # 再将本地的master分支重置成linux git reset - ...
- 43、扩展原理-@EventListener与SmartInitializingSingleton
43.扩展原理-@EventListener与SmartInitializingSingleton 还可以使用 @EventListener; 来监听事件 原理:使用EventListenerMeth ...
- SQL:SQL Broker
-- ============================================= --启用 Broker USE master; GO ALTER DATABASE DEV_AMS S ...
- SIGAI机器学习第三集 数学知识-2
讲授机器学习相关的高等数学.线性代数.概率论知识 大纲: 最优化中的基本概念梯度下降法牛顿法坐标下降法数值优化算法面临的问题拉格朗日乘数法凸优化问题凸集凸函数凸优化拉格朗日对偶KKT条件 最优化中的基 ...
- 使用这些 CSS 属性选择器来提高前端开发效率
属性选择器非常神奇.它们可以使你摆脱棘手的问题,帮助你避免添加类,并指出代码中的一些问题.但是不要担心,虽然属性选择器非常复杂和强大,但是它们很容易学习和使用.在本文中,我们将讨论它们是如何运行的,并 ...
- E:nth-of-type(n)
E:nth-of-type(n) 语法: E:nth-of-type(n) { sRules } 说明: 匹配同类型中的第n个同级兄弟元素E.深圳dd马达 要使该属性生效,E元素必须是某个元素的子元素 ...