【问题标题】:logrotate for /var/log/cron not working?/var/log/cron 的 logrotate 不起作用?
【发布时间】:2011-05-22 21:56:44
【问题描述】:

您好,我在 /etc/logrotate.d/syslog-ng 中添加了以下几行以使 /var/log/cron 旋转。

/var/log/cron {
   rotate 1
   size=1k
   nocompress
   postrotate
     /bin/killall -HUP syslog-ng 2>/dev/null || true
   endscript
}

在我这样做之后,发现 /var/log/cron 的 logrotation 没有发生。此外,在添加这段代码之前曾经工作过的其他文件的 logrotation 也不起作用。我已将文件 /etc/logrotate.d/ 包含在 /etc/logrotate.conf 中

我哪里错了?

我原来的 /etc/logrotate.d/syslog-ng 如下所示

/var/log/cmm/cmm/error.log {
    rotate 5
    compress
    size=100k
    postrotate
        /usr/bin/killall -HUP syslog-ng 2> /dev/null || true
    endscript
}

# ------------------- rotate and move user.log
/usr/local/data/log/user.log {
   rotate 10
   compress
   size=1000k
   missingok
}

/tmp/log/user.log {
   rotate 1
   nocompress
   size=100k
   postrotate
       /usr/bin/killall -HUP syslog-ng 2> /dev/null || true
       cat /tmp/log/user.log.1 >> /usr/local/data/log/user.log
   endscript

}

# ------------------- rotate and move debug.log
/usr/local/data/log/debug.log {
   rotate 32
   compress
   size=1000k
   missingok
}

/tmp/log/debug.log {
   rotate 1
   nocompress
   size=100k
   postrotate
       /usr/bin/killall -HUP syslog-ng 2> /dev/null || true
       cat /tmp/log/debug.log.1 >> /usr/local/data/log/debug.log
   endscript
}

【问题讨论】:

  • 您缺少“postrotate”和“endscript”指令。
  • 对不起,我忘了添加 postrotae 和 endscript 指令。实际上它在我的代码中。那么logrotation也没有发生

标签: cron logrotate


【解决方案1】:

所有其他指令都有/usr/bin/killall

cron 指令具有/bin/killall。可能是这个原因?

无论如何,运行

logrotate -d /path/to/your/script

并在其输出中寻找线索。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 2014-11-16
    • 2013-03-17
    • 2015-12-20
    • 2016-02-24
    • 2015-02-23
    • 2018-07-29
    相关资源
    最近更新 更多