Apache2 rotatelogs未截断文件



我有rotatelogs设置,我认为它应该满足我的要求。以下是相关行:

CustomLog "|/usr/bin/rotatelogs -l -n 4 /var/www/html/org/logs/development/ssl.access_log 604800" combined
ErrorLog "|/usr/bin/rotatelogs -l -n 4 /var/www/html/org/logs/development/ssl.error_log 604800"

我的理解是,每周,我都会看到一个新的日志文件用不同的后缀创建。-n 4会保存三周的日志加上正在写入的当前文件。我只看到ssl.access_log.1,然后是当前日志文件。然而,没有后缀的日志文件是巨大的,检查它的内容,我可以看到有来自很久以前的消息。

我是不是根本不了解rotatelogs的功能?

更新:

我开始怀疑rotatelogs的rotationtime参数是否特定于进程运行的时间,而不是日志文件存在的时间。logrotate每天通过一个cron作业运行,该作业最终为apache2获取一个默认的logrotate配置文件,该文件旋转默认的日志文件,并在每天早上0625重新加载apache2。我想知道这种重新加载是否会导致我的604800(7天(的rotationtime参数基本上永远无法达到,从而导致日志文件永远无法旋转。在正确的轨道上?

我观察到了rotatelogs完全相同的行为:没有后缀的文件永远不会被截断,但仍然会附加行。与tczx3相反,我没有明确地定期重新启动进程。我也没有手动操作任何时间戳。据我所知,这种行为显然不像有记录的那样。而且旋转球似乎不能算到5。它以-n 5开头,但只维护4个文件(没有后缀.1、.2和.3(。我现在手动删除了文件中没有后缀的过时行,并将在接下来的几周内进行观察。根据我将看到的内容,我将打开一个错误报告。

最新更新