ily*_*ect 3 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
}
Run Code Online (Sandbox Code Playgroud)
而且我看到没有“每月”的意思,因为cron会“每天”做。
crond 和 logrotate 之间的关系相当简单:cron 每天运行一次 logrotate(请参阅/etc/cron.daily/logrotate参考资料),然后 logrotate 根据配置文件决定要做什么。logrotate(8) 联机帮助页中阐明了有关每月的具体问题:
每月
日志文件在一个月内第一次运行 logrotate 时轮换(这通常是在一个月的第一天)。
您的配置的效果是日志文件将增长超过一个月,一旦开始新的一个月,logrotate 将重命名并压缩与您提供的文件规范匹配的任何非零大小的文件。
最后,如果您使用logrotate -f,logrotate 将轮换日志,无论在配置中设置的时间段如何。如果您没有使用发行版提供的 cronjob,请记住不要提供-f.
(请注意,此答案假定 Debian 和 Ubuntu,因为这是我能够轻松测试的内容,但应该更普遍地适用)。
| 归档时间: |
|
| 查看次数: |
9965 次 |
| 最近记录: |