2010-12-09 3 views
1

Привет, я добавил следующие строки в /etc/logrotate.d/syslog-ng, чтобы сделать/var/log/cron вращаться.logrotate for/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 не происходит. Кроме того, логротация для других файлов, которые раньше работали до добавления этого фрагмента кода, также не работает. Я включил файл /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 
} 
+0

Вам не хватает директив «постротата» и «концовки». – Piskvor 2010-12-09 14:43:15

ответ

3

Все ваши другие директивы имеют /usr/bin/killall.

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

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

logrotate -d /path/to/your/script 

И искать улики в своей продукции.

Смежные вопросы