我正在尝试编写一个bash脚本来获取本地Web服务器在过去14天中每天收到的请求数。
请求列在@ / etc / httpd / logs / access_log
我正在考虑使用一个循环来循环每一行,但不知道如何获得过去两周的行。
我发现你可以改变日期命令的格式。
例如:
date +%d/%m/%Y
将返回
03/12/2014
我的剧本:
#! /bin/bash requestsPast2weeks
cat /etc/httpd/logs/access_log
我不知道从哪里开始这个。有什么想法吗?
答案 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
现在,把它放到循环中,然后瞧瞧; - )