Logrotate не вращается автоматически в зависимости от размера журнала.

У меня есть собственное приложение (myApp), которое записывает журналы в файл / var / log / myApp. Я вижу, что журналы пишутся, и все работает нормально. Теперь я пытаюсь настроить logrotate для этого файла, и для этого я создал файл конфигурации '/etc/logrotate.d/myApp', содержимое которого -

/var/log/myApp {
   missingok
   size +10k
   start 0
   nocompress
   create 0600 root root
   rotate 10
   postrotate
     /etc/init.d/rsyslog restart > /dev/null 2>&1 || true
   endscript
}

Теперь, если я делаю logrotate -dv /etc/logrotate.d/myApp, я не вижу никаких ошибок как таковых, и когда выполняется logrotate -f /etc/logrotate.d/myApp, то есть принудительный logrotate, журнал вращается. Но когда размер файла журнала превышает 10 КБ, журнал автоматически не поворачивается. Любая помощь будет оценена по достоинству.


person One    schedule 30.06.2011    source источник


Ответы (2)


logrotate выполняет ротацию журналов, указанных в /etc/logrotate.d/, в соответствии с интервалом времени, настроенным в /etc/logrotate.conf. В некоторых дистрибутивах значение по умолчанию - неделя. Вы можете переопределить этот временной интервал в своей конкретной конфигурации, используя, например, 'daily' в вашем файле конфигурации.

Файлы журнала не будут чередоваться до тех пор, пока logrotate не узнает о файлах, по крайней мере, в течение указанного времени. Я предполагаю, что вы так долго ждали и / или изменили файл conf?

person FuriousGeorge    schedule 01.02.2012
comment
›Файлы журнала не будут чередоваться до тех пор, пока logrotate не узнает о файлах, по крайней мере, в течение указанного времени. Gwha? Для меня это новость. Я ничего не видел на странице руководства logrotate по этому поводу. Как отладить файл logrotate conf, не дожидаясь 24 часов, чтобы убедиться, что он работает? - person Logan; 02.10.2012
comment
@Logan - вы используете опцию -f (принудительно). - person Hogan; 13.02.2013
comment
См. Также unix.stackexchange.com/questions/15546/ (/ var / lib / logrotate / status и флаг -f) - person pevik; 20.05.2013

logrotate работает только один раз в день, поэтому он не проверяет размер вашего файла постоянно.

если вам нужен эффективный способ уменьшить размер, вы должны использовать задание cron, например

например, принудительно выполнять ротацию каждый час в вашем crontab

0 * * * * logrotate <my conf here> 

и ваши журналы при необходимости будут обновляться каждый час. У меня была такая проблема на моем сервере aws бесплатного уровня, так как размер быстро превышал, и у меня не было достаточно места на диске, чтобы ждать 24 часа для ротации

person kommradHomer    schedule 30.03.2014