logrotate для / var / log / cron не работает? - PullRequest
2 голосов
/ 09 декабря 2010

Привет, я добавил следующие строки в /etc/logrotate.d/syslog-ng, чтобы сделать / var / log / cron rotate.

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

После того, как я это сделал, обнаружилось, что logrotationдля / var / log / cron не происходит.Более того, 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
}

1 Ответ

3 голосов
/ 17 декабря 2010

Все остальные ваши директивы имеют /usr/bin/killall.

Директива cron имеет /bin/killall.Может быть, в этом причина?

В любом случае, запустите

logrotate -d /path/to/your/script

И поищите подсказки в его выводе.

...