【问题标题】:Rotate file according to size根据大小旋转文件
【发布时间】:2015-02-08 10:57:51
【问题描述】:

我有以下设置:从/etc/logrotate.d/syslog 文件中删除包含/var/log/maillog 的行,并在/etc/logrotate.conf 文件中添加以下内容:

...

# system-specific logs may be also be configured here.

/var/log/maillog
{
    missingok
    notifempty
    nocompress
    size=50k
    postrotate
        touch /var/log/maillog
    endscript
}

为什么当文件大小达到 50k 时,touch /var/log/maillog 行永远不会被执行?

【问题讨论】:

  • 如果你运行logrotate -d /etc/logrotate.conf,你会看到什么文件?
  • ...reading config info for /var/log/maillog...rotating pattern: /var/log/maillog 51200 bytes (10 rotations) empty log files are not rotated, old logs are removed considering log /var/log/maillog log needs rotating rotating log /var/log/maillog, log->rotateCount is 10 dateext suffix '-20141210' glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' destination /var/log/maillog-20141210 already exists, skipping rotation
  • 最后一行似乎是我认为的关键。 destination /var/log/maillog-20141210 already exists, skipping rotation我不确定这应该如何与日期扩展一起使用。

标签: linux centos logrotate


【解决方案1】:

因为在使用大小限制旋转时可能会在一天内进行多次旋转,所以使用dateext 选项是不合逻辑的。从您显示logrotate -d /etc/logrotate.conf 结果的评论来看,它似乎已启用。

您可以通过添加nodateext 选项在块中禁用dateext。现在配置将是:

...

# system-specific logs may be also be configured here.

/var/log/maillog
{
    missingok
    notifempty
    nocompress
    size=50k
    nodateext ## ADD THIS LINE ##
    postrotate
        touch /var/log/maillog
    endscript
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多