每日/每周/每月进行Logrotate

时间:2017-04-28 10:48:18

标签: linux logging logrotate

为什么我们在配置文件中设置每日/每周/每月选项,如果我们可以在cron中执行(实际上是这样做)?这个选项有什么意义?

例如:我设置每天(每天)执行“logrotate -f /etc/logrotate.d/app”。 但是在配置文件(/etc/logrotate.d/app)中,我将每周设置一次:

/home/dirnov/www/letsee/logs/*.log {
        monthly
        missingok
        rotate 4
        compress
        notifempty
}

我发现没有“月度”的感觉,因为cron会“每天”这样做。

1 个答案:

答案 0 :(得分:0)

crond和logrotate之间的关系非常简单:cron每天运行一次logrotate(请参阅ini),然后logrotate根据配置文件决定要做什么。 in the logrotate(8) manpage已阐明您有关每月的具体问题:

  

每月
     日志文件在一个月内第一次运行logrotate时(通常在该月的第一天)旋转。

配置的结果是日志文件将增长一个月,一旦开始新的月份,logrotate将重命名,然后压缩与您提供的文件规范匹配的任何非零大小的文件。

最后,如果您使用/etc/cron.daily/logrotate,则logrotate将轮换日志,而不考虑配置中设置的时间段。如果您不使用发行版提供的cronjob,请记住不要提供logrotate -f

(请注意,此答案假定使用Debian和Ubuntu,因为这是我能够轻松测试的内容,但应更广泛地应用)。