问题概述
一个大型网站每天都有数以亿计的访问者,每个访问者的访问行为都会在服务器中都会留下访问记录。
访问记录里有许多信息,其中包含两个字段:访问者的IP、访问者的用户id.例如,格式是这样的:
>>> cat record. txt
10:20 202.114.112.5 32123453
10:21 213.89.113.21 34234234
每条记录分为3个字段,第一个字段是用户的访问时间,第二个字段是用户的访问IP,第3个字段是用户的id,中间以空格隔开。
这样的记录有什么用呢?工程师每天晚上都会分析这些用户数据:
(1)分析哪些IP的访问异常,例如出现短时间内大量访问的情况(可能是用机器人爬网页的结果):
(2)分析哪些用户为活跃用户:
(3)分析哪些用户的账户存在异常( 例如瞬间换另一个IP登录)。
那么,如何判断用户的IP访问短时间内出现大量请求呢?因为个连接请求 一条记录,所以可以取出每天IP访问次数最高的前100名,对这些用户进行分析。
取出记录的ip和id字段
在这里我模拟了一个类似网站访问记录的文件record.txt
cut命令可以取出格式化文本中需要的字段,这里需要取出其中的ip和id字段,时间字段先行