美文网首页
logrotate的三个大小相关的参数size/minisize

logrotate的三个大小相关的参数size/minisize

作者: CodingCode | 来源:发表于2020-02-15 08:10 被阅读0次

logrotate的三个size相关的参数size/minisize/maxsize

最近在搭建rsyslog/logrotate的环境,重新整理了logrotate的三个size相关的参数。
主要是这些参数用的时候都要花点时间才能整明白,然后一段时间不用就全忘了,又得来一遍。

  • size
    触发分割的条件是:1.日志大小达到这个值,和时间周期没有关系。
  • minisize
    触发分割的条件是:1.时间周期到了,2.日志大小达到这个值;两个条件都要满足。
  • maxsize
    触发分割的条件是:1.时间周期到了,2. 日志大小大于这个值;两个条件任何一个满足。

这里有一个概念一定要先弄清楚。

  1. logrotate是一个由cron调度的周期性的任务,它的调度周期和日志的分割周期有关系。
    缺省linux环境下logrotate是一个按天调度的任务(脚本logrotate被放置在/etc/cron.daily路径下面)。
  2. 这样如果一个日志的分割周期被定义为hourly,但是logrotate的调度周期还是daily的话,那么这个日志的hourly分割周期是无效的,因为logrotate才每天调度一次,导致日志的实际分割周期是天。
  3. 因此logrotate的调度周期不能比任何日志的分割周期长。
    假设最小的日志分割周期需求是hourly,那么logrotate的调度周期最多是一小时,只能更小。

举几个例子:

  1. size=100M, logrotate=daily
    如果每天生成50M日志文件,则两天分割一次;
    如果每天生成100M日志文件,则每天分割一次。
    如果每天生成200M日志文件,则还是每天分割一次,因为每天才调度一次呢。
  2. minsize=100M, logrotate=daily
    如果每天生成50M日志文件,则两天分割一次;
    如果每天生成100M日志文件,则每天分割一次。
    如果每天生成200M日志文件,则还是每天分割一次,因为每天才调度一次呢。
  3. maxsize=100M,logrotate=daily
    如果每天生成50M日志文件,则每天分割一次;
    如果每天生成100M日志文件,则每天分割一次。
    如果每天生成200M日志文件,则还是每天分割一次,因为每天才调度一次呢。

相关文章

网友评论

      本文标题:logrotate的三个大小相关的参数size/minisize

      本文链接:https://www.haomeiwen.com/subject/bbxefhtx.html