apache access.log 仅保留过去 3 个月的记录

apache access.log 仅保留过去 3 个月的记录

我需要实时快速解析 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用于访问日志记录。它通过为每个请求插入一条记录将访问信息存储到数据库表中。然后可以查询此表以从访问日志中获取所需信息,这比解析文本文件要快得多。因此,它将导致更快的日志处理,而不会缺少删除或将信息从一个地方移动到另一个地方。

相关内容