Apache访问日志的轮换

认为我的系统是使用logrotate旋转日志,包括httpd日志

“当前”文件logging在这里/ var / log / httpd /但我只看到最后5天(我认为)

但是我怎么能find以前的日志文件存在的地方。 我以为它们是和现在一样被创造出来的。

我一直在环视,但没有得到任何明智的,任何人谁可以帮助我?

提前致谢,

短发

你可能在你的logrotateconfiguration文件里有这样的东西

"/var/log/httpd/access.log" /var/log/httpd/error.log { rotate 5 size=100k sharedscripts postrotate /sbin/killall -HUP httpd endscript } 

旋转5意味着只有最后5个文件将被保存。 这里的文件每10万转。
如果您有每日关键字,则意味着每个存档文件都是1天的日志。 如果要在服务器上保留文件更长时间,则必须增加旋转值

Logrotate通常会使用相同的文件名和附加的数字,比如access.log.1 。 之后压缩的日志将会有一个.gz ,所以一个较旧的访问日志将是access.log.3.gz (例如)。

还有其他方法可以重命名旧的日志文件(比如按date),但是它们相对不常见,而且不太可能在没有明确执行的情况下对它们进行configuration。

正如其他人在这里所表明的,看起来像老年人走了。 我最终编写了每天运行的自定义旋转脚本,以便我们可以保留更长时间的apache日志进行分析。 唯一的窍门是你必须在重命名文件后重新启动apache。

当然,如果你正在做我们所做的事情,并用YYYYMMDD这样的date模式来命名文件,那么我build议你在午夜之后稍微开始重命名脚本,而不是之前。 这与文件被命名为“错误”是直截了当的,但是如果你的脚本和我的脚本一样,并且必须从许多网站上获取许多大的日志,并且需要一些时间。 你只是不希望有什么歧义,你的脚本将在哪一天得到它的date戳 – 如果星期一它运行和负载低,它获得在23:59date戳,但星期二负载是非常高的,它得到它的date戳在00:01 – 呃,问题是星期三的日志会在最坏的情况下覆盖星期二的日志,或者只是不能旋转。 所以只是计划在午夜之后总是运行这个东西,所以你知道你不会有这个问题。