我需要实时快速解析 Apache accesslog 文件,并且始终只保留最近 3 个月的数据。因此,我需要一个工具,每天从日志文件中剪切旧记录(并将它们移动到另一个文件),同时为主 access_log 保留相同的文件名。
使用 logrotate 可以实现吗?
谢谢!
白色。
答案1
当然,你可以这样做logrotate
,如下所示:
/var/log/httpd/access_log {
missingok
notifempty
sharedscripts
daily
rotate 90
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
compress
}
答案2
我不知道目的是什么,但我想这可能是更好的使用方法mod_log_sql用于访问日志记录。它通过为每个请求插入一条记录将访问信息存储到数据库表中。然后可以查询此表以从访问日志中获取所需信息,这比解析文本文件要快得多。因此,它将导致更快的日志处理,而不会缺少删除或将信息从一个地方移动到另一个地方。