Logrotate не поворачивается автоматически в зависимости от размера журнала - PullRequest
7 голосов
/ 30 июня 2011

У меня есть пользовательское приложение (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, то есть принудительное логротация, журнал поворачивается. Но когда размер файла журнала превышает 10 КБ, журнал не поворачивается автоматически. Любая помощь будет оценена.

Ответы [ 2 ]

4 голосов
/ 02 февраля 2012

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

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

1 голос
/ 30 марта 2014

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

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

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

0 * * * * logrotate <my conf here> 

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

...