如何使用bash获取过去2周内本地服务器的请求数量?

时间:2014-12-04 22:10:54

标签: linux bash

我正在尝试编写一个bash脚本来获取本地Web服务器在过去14天中每天收到的请求数。

请求列在@ / etc / httpd / logs / access_log

我正在考虑使用一个循环来循环每一行,但不知道如何获得过去两周的行。

我发现你可以改变日期命令的格式。

例如:

date +%d/%m/%Y

将返回

03/12/2014

我的剧本:

#! /bin/bash requestsPast2weeks
cat /etc/httpd/logs/access_log

我不知道从哪里开始这个。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这取决于您是如何为访问日志设置rotation policy的。通常所有文件都应该在/ etc / httpd / logs /中,但正如我所说,它取决于您的轮换策略。

为了计算请求数量,您可以使用旧的wc

cat /etc/httpd/logs/access_log* | wc -l

如果您想查找每个特定日期的请求数量(2013年6月10日),请使用grep

grep '\[10/Jun/2013' /etc/httpd/logs/access_log* | wc -l

要了解14天前的日期,请使用:

date  --date="14 days ago" +%d/%m/%Y

现在,把它放到循环中,然后瞧瞧; - )