Bash 如何从某个日期开始通过goaccess获取访问日志摘要?
目前我保存了6周的apache访问日志。如果我在月末生成访问摘要:Bash 如何从某个日期开始通过goaccess获取访问日志摘要?,bash,apache,centos,goaccess,Bash,Apache,Centos,Goaccess,目前我保存了6周的apache访问日志。如果我在月末生成访问摘要: cat /var/log/httpd/access_log* | goaccess --output-format=csv 摘要将包括上个月的一些访问数据 如何跳过上个月的日志并从每月的第一天开始进行总结 p、 数据格式为:%d/%b/%Y您可以用cat的无用用法换取有用的grep grep -n $(date +'[0-3][0-9]/%b/%Y') /var/log/httpd/access_log* | goaccess
cat /var/log/httpd/access_log* | goaccess --output-format=csv
摘要将包括上个月的一些访问数据
如何跳过上个月的日志并从每月的第一天开始进行总结
p、 数据格式为:
%d/%b/%Y
您可以用cat
的无用用法换取有用的grep
grep -n $(date +'[0-3][0-9]/%b/%Y') /var/log/httpd/access_log* |
goaccess --output-format=csv
如果日志是按日期显示的,则跳过您知道的太旧或太新的日志会更经济,即修改通配符参数,以便只匹配您真正需要的文件(或者运行类似于find-mtime-30
的操作,至少将设置缩小到几个文件)
(由于如果goaccess
的编写完全正确,因此cat
是无用的,它应该能够处理
goaccess --output-format=csv /var/log/httpd/access_log*
很好。)
grep--no filename$(date+“[0-3][1-9]/%b/%Y”)
(goaccess需要--no filename
)@ohho-Duh,我试着提醒自己,但还是忘了!感谢您的注释--已更新。从手册页上看,这也应该有效:zcat-f access.log*|sed-n'/'`date+“01\/%b\/%Y”`/,$p'| goaccess--output format=csv
@Kayla如果access.log.0.Z
是最新版本,则效果很差--这种情况下,通配符扩展将以完全错误的顺序生成文件。顺便说一句,是否应该[0-3][1-9]
是[0-3][0-9]
?