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

答案解析

  1. awk 命令在分段方面还是比较有优势的,这里的{print $1}讲第一段打印出来,awk 可以用-F 指定分隔符,如果不指定分隔符,默认就以空白字符(比如空格、Tab 等),本题中,IP 地址就是在第一段。
  2. sort 命令是排序的命令,-n 选项表示以数字的形式排序,如果不加-n,则以 ASCII 排序,本题中的 IP 地址以数字的形式排序更容易区分。
  3. uniq 命令是用来去重复的,一个文本中如果有多行内容是一模一样的,使用 uniq 命令就可以把相同内容的行给删除掉,只留一行。而-c 选项的作用是计算重复的行数,所以在此题中使用 uniq -c 正好可以计算 IP 地址的访问数量。不过,大家一定要注意,uniq 去重的前提是首先要排序。
  4. 本题答案里最后没得 sort -n 意思是按访问量大小来排序,请求量越大的 IP 排在越后面,如果要想排在前面,可以加一个-r 选项,即 sort –nr
  5. 博客来源:https://www.cnblogs.com/cheyunhua/p/11212050.html

原文地址:https://www.cnblogs.com/Small-sunshine/p/11323608.html

时间: 2024-10-10 23:16:29

shell统计ip访问情况并分析访问日志的相关文章

sarg分析squid日志

1.SARG介绍 SARG的全称是:Squid Analysis Report GeneratorSARG非常好用的Squid日志分析工具,它输出html格式,可以详细列出了每一位用户访问internet的站点信息,时间占用信息,排名,连接次数,访问量,访问量等.软件的主页:http://sarg.sourceforge.net/sarg.php 目前最新的版本是sarg-2.3.1 ####要使用SARG必须有网页页面,所以先安装apache.yum -y install httpd* ,安装

[apache]用shell分析网站的访问情况

随着网站正式运行,我们可以通过通用的免费日志分析工具比如awstats获得一些实际访问网站的信息,例如每天ip量,pv量,用户所用的的浏览器,用户所用的操作系统等,但是有时候希望通过手工方式从WEB日志文件中获得一些信息,下面列出了一些最近一段时间我经常在用的命令获得访问前10位的ip地址cat access.log|gawk ‘{print $1}’ |sort|uniq -c|sort -nr |head -10访问次数最多的文件或页面cat access.log|gawk ‘{print

Python基于nginx访问日志并统计IP访问量

如果想看看Nginx有多少IP访问量,有哪些国家访问,并显示IP地址的归属地分布,python可以结合使用高春辉老师ipip.net[免费版 IP 地址数据库],Shell可以使用nali,我这边主要使用python语言来实现需求,并将查询结果以邮件形式发送,也是为了学习和回顾python语言.很感谢高春辉老师提供的免费版IP地址数据库. 一.Ningx日志如下: 41.42.97.104 - - [26/Feb/2015:03:35:40 -0500] "GET /root/ HTTP/1.1

IIS日志——统计IP访问次数的一种方法

使用LogParser对IIS服务器被Hit访问的IP进行次数统计,方便结合防火墙IP***列表对IIS网站进行日志审计报表的编写 配置IIS网站的日志 下载进行日志分析的两个工具LogParser(命令行工具),下载地址:http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=24659LogParser Studio(图形化工具),下载地址:http://gallery.technet.microsoft.

老男孩教育每日一题-2017年4月26日-通过访问日志access.log统计IP和每个地址访问的次数

通过访问日志access.log统计IP和每个地址访问的次数 101.226.61.184 - - [22/Nov/2015:11:02:00 +0800] "GET /mobile/sea-modules/gallery/zepto/1.1.3/zepto.js HTTP/1.1" 200 24662 "http://m.oldboyedu.com/mobile/theme/oldboyedu/home/index.html" "Mozilla/5.0 

linux环境编译apache+AWStats分析+访问限制

一. 安装apache 1.1编译安装apache网站服务 --prefix:指定将httpd服务程序安装到那个目录下,如/usr/local/httpd --enable-so:启用动态加载模块支持,httpd具备进一步扩展功能的能力 --enable-rewrite:启动网页地址重写功能,用于网站优化及目录迁移维护 --enable-chatset-list:启动字符集支持,以便支持使用各种字符集编码的网页 --enable-cgi:启用CGI脚本程序支持,便于拓展网页的访问能力 1.2确定

Apache服务器访问过慢分析及解决

起因:线上的一台服务器,最近总是出现 访问 很慢的情况发生,点击一个链接要2秒钟以上才能打开,按照我们对于访问人数的估计,服务器应该不至于响应这么慢,从而需要针对这个问题进行分析,来解决网站访问过慢. 分析: 1.首先,在页面访问变慢情况发生时,使用 top 命令查看了服务器的负载情况,发现负载并不高,初步估计不是程序的问题. 2.然后,查看了线程中的 httpd 的数量, ps -aux | grep httpd | wc -l 发现,线程数已经达到了 apache 设置的最大值.由此断定是网

利用ngxtop实时监控nginx的访问情况

关于对nginx web server的实时访问的实时监控问题,我很久之前就想实现的,现在虽有nginx自带的status扩展,但那是全局的,无法细分到vhost,并且提供的metric也很少,加之目前是通过cacti每5分钟取nginx status,实时性也不是很好,记得前一阵为maptail兴奋一点,以为能够解决我的问题,可是他只是漂亮的在地图上显示实时用户的ip地理位置信息,没有其他功能了,不过他的思想很重要---"tail -f log",如今的ngxtop其实也是这种思想,

SEAndroid安全机制对Android属性访问的保护分析

Android系统通过属性暴露设备和运行时信息,并且可以通过设置属性来控制系统行为.因此,属性也像文件一样,是一种需要保护的资源.在启用SEAndroid之前,敏感属性只能被预先设定的进程进行设置.启用SEAndroid之后,敏感属性会进一步被SEAndroid安全策略保护.这样就可以更有效地保护系统属性了.在本文中,我们就详细分析SEAndroid安全机制对Android属性设置保护提供的支持. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 在分析SE