2

嗨,我在 /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.conf 中包含了文件 /etc/logrotate.d/

我哪里错了?

我原来的 /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
}
4

1 回答 1

3

您的所有其他指令都有/usr/bin/killall.

cron指令具有/bin/killall. 也许这就是原因?

在任何情况下,运行

logrotate -d /path/to/your/script

并在其输出中寻找线索。

于 2010-12-17T01:07:18.893 回答