博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找出apache日志中访问量最大的IP
阅读量:6412 次
发布时间:2019-06-23

本文共 1655 字,大约阅读时间需要 5 分钟。

最近打算换个工作环境,于是就投了几份简历,做运维的,笔试题是少不了的。

其中碰见最多的就是关于日志的统计和分析的题。

这里贴一个比较典型的出来,方便以后查阅。

原题如下:

某公司采用apache作为web服务器,其中记录客户端访问情况的日志名为,clientuser.log。日志内容如下图所示:

请写一个shell找出该日志中,访问量最大的ip。

这个题对于运维老手来说,写个shell也是非常轻松的。可是对于新手来说就有些难度了。

我的思路是这样的,首先找出IP段,然后进行数量统计,最后对统计数量排序,取出最大值。

明确了思路,就方便些shell了。

我是这样写的:

# cut -d " " -f 1 clientuser.log |uniq -c|sort -r|head -1|awk '{print $2}'

这里将命令分段执行,方便大家理解。

# cat clientuser.log

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
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
192.168.1.100 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
192.168.1.110 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 

1、取出IP段:

# cut -d " " -f 1 clientuser.log

127.0.0.1
127.0.0.1
192.168.1.100
192.168.1.100
192.168.1.100
192.168.1.100
192.168.1.110 

2、统计IP访问数量

# cut -d " " -f 1 clientuser.log |uniq -c

2 127.0.0.1
4 192.168.1.100
1 192.168.1.110 

3、对统计好的IP访问数量排序

# cut -d " " -f 1 clientuser.log |uniq -c|sort -r

4 192.168.1.100
2 127.0.0.1
1 192.168.1.110 

4、取出访问量最大的IP及访问数量

# cut -d " " -f 1 clientuser.log |uniq -c|sort -r|head -1

4 192.168.1.100 

5、只显示IP

# cut -d " " -f 1 clientuser.log |uniq -c|sort -r|head -1|awk '{print $2}'

192.168.1.100 

到此,我们就完成了此题的解答。

此题的解法不止这一种方法,还有很多,大家都来想一想吧。

本文转自 cyr520 51CTO博客,原文链接:http://blog.51cto.com/cyr520/768707

转载地址:http://exkra.baihongyu.com/

你可能感兴趣的文章
第七次作业
查看>>
Oracle中NVARCHAR2与VARCHAR2的区别
查看>>
php debug
查看>>
Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境部署】
查看>>
lvm实现快速备份文件及数据库,lvm快照原理
查看>>
设计模式之Factory Method(工厂方法)
查看>>
10K入职linux运维岗位小伙伴感谢信及面试经历分享
查看>>
zookeeper入门之Curator的使用之几种监听器的使用
查看>>
[转]Reporting Service部署之访问权限
查看>>
innerxml and outerxml
查看>>
validform校验框架不显示错误提示
查看>>
flink 获取上传的Jar源码
查看>>
Spring Data JPA Batch Insertion
查看>>
UEditor自动调节宽度
查看>>
JAVA做验证码图片(转自CSDN)
查看>>
Delphi TServerSocket,TClientSocket实现传送文件代码
查看>>
JS无聊之作
查看>>
Mac上搭建ELK
查看>>
443 Chapter7.Planning for High Availability in the Enterprise
查看>>
框架和语言的作用
查看>>