我认为我的系统正在使用 logrotate 来旋转日志,包括 httpd 日志
“当前”文件记录在这里 /var/log/httpd/ 但我只看到最近 5 天(我认为)
但是我怎样才能找到以前的日志文件存在的位置。我以为它们是在与当前相同的地方创建的。
我一直在 logrotate 中环顾四周,但没有变得更聪明,这里有人可以帮助我吗?
提前致谢,
鲍勃
我认为我的系统正在使用 logrotate 来旋转日志,包括 httpd 日志
“当前”文件记录在这里 /var/log/httpd/ 但我只看到最近 5 天(我认为)
但是我怎样才能找到以前的日志文件存在的位置。我以为它们是在与当前相同的地方创建的。
我一直在 logrotate 中环顾四周,但没有变得更聪明,这里有人可以帮助我吗?
提前致谢,
鲍勃
您的 logrotate 配置文件中可能有类似这样的内容
rotate 5 表示只保留最后 5 个文件。这里的文件每 100k 翻一次。
如果您有 daily 关键字,则表示每个归档文件都是 1 天的日志。如果要在服务器上保留文件更长时间,则必须增加旋转值
Logrotate 通常会使用相同的文件名并附加一个数字,例如
access.log.1
. 压缩后的日志将在之后有一个,因此(例如).gz
旧的访问日志将是。access.log.3.gz
还有其他方法可以重命名旧日志文件(例如按日期),但它们相对不常见,而且如果没有您明确地进行配置,它们不太可能被配置。
正如其他人在这里指出的那样,看起来旧的已经消失了。我最终编写了每天运行的自定义轮换脚本,以便我们可以将 apache 日志保留更长时间以进行分析。唯一的窍门是您必须在重命名文件后立即重新启动 apache。
当然,如果您正在做我们所做的并使用 YYYYMMDD 之类的日期模式命名文件,我建议您在午夜之后稍稍启动重命名脚本,而不是之前。这是反直觉的,因为文件被命名为“错误”,但如果你的脚本和我的一样,并且必须从许多网站旋转和压缩许多巨大的日志,这可能需要一些时间。您只是不希望您的脚本在哪一天得到它的日期戳有任何歧义——如果它在星期一运行并且负载很低并且它在 23:59 得到一个日期戳,但是星期二的负载非常高并且它得到它的日期戳在 00:01 - 好吧,问题是在最坏的情况下周三的日志将覆盖周二的日志,或者只是无法轮换。所以只是计划总是在午夜之后运行这个东西,这样你就知道你不是'