【发布时间】:2019-04-03 09:12:42
【问题描述】:
我需要从 apache 访问日志文件中打印唯一的 url,其中包含每个 url 的唯一计数,并且我需要在特定的日期范围内执行此操作。
我们有一个使用 GET 获取参数的日志记录 url,因此最好对访问文件进行排序以查找唯一 url,在日期范围内对它们进行计数并将它们插入数据库,而不是主动插入每个连接。
访问日志格式如下:
11.111.11.111 - - [03/Apr/2019:11:43:11 +0300] "GET /url.php?parameter=&2nd_parameter=15&mana=587&something_else=mana HTTP/1.1" 200 5316 "something:something" "Mozilla/5.0 (Android; U; en-GB) AppleWebKit/533.19.4 (KHTML, like Gecko) AdobeAIR/29.0" 1152 [url.url.com]
我需要在时间范围内完成,这样我至少可以有一些时间框架并且文件非常大 - 一天的访问日志可能 >10gb。 grep 的结果会被 PHP 解析。
cat access_ssl.log | awk '{print $7}' | sort -n | uniq -c
产生唯一的网址及其计数。我还需要只获得特定时间范围内的结果。
我希望输入一个特定的时间范围,例如:11:00:00,12:00:00 - 例如一个小时,输出要分组,计算 url:
20 /url.php?parameter=&2nd_parameter=15&mana=587&something_else=mana
15 /url.php?parameter=&2nd_parameter=15&mana=577&something_else=something_else
【问题讨论】:
-
请在您的帖子中发布一些输入和预期输出示例,然后让我们知道。
-
更新了问题