为什么我们在配置文件中设置每日/每周/每月选项,如果我们可以在cron中执行(实际上是这样做)?这个选项有什么意义?
例如:我设置每天(每天)执行“logrotate -f /etc/logrotate.d/app”。 但是在配置文件(/etc/logrotate.d/app)中,我将每周设置一次:
/home/dirnov/www/letsee/logs/*.log {
monthly
missingok
rotate 4
compress
notifempty
}
我发现没有“月度”的感觉,因为cron会“每天”这样做。
答案 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,因为这是我能够轻松测试的内容,但应更广泛地应用)。