У меня есть следующая конфигурация для ротации журналов приложений.
/opt/tomcat/logs/app-web.txt {
copytruncate
daily
size 500M
compress
delaycompress
rotate 0
missingok
notifempty
}
/opt/tomcat/logs has a lot of files
app-web.txt
app-web.txt.1
app-web.txt.2
app-web.txt.3
app-web.txt.4
..
..
..
..
..
app-web.txt.100
Я поместил конфигурацию в /etc/logrotate.d/app-web. Я использую CentOs 6.6
Я хочу иметь только 9 файлов, например aap-web.txt и app-web.txt.1.gz до app-web.txt.9.gz
Каждый файл внутри / opt / tomcat / logs имеет размер 498 MБ. и создаются они каждые 1 час 30 мин.
$cat /var/lib/logrotate.status
отображает время, которое я пробежал вручную. Он не запускается cron автоматически.
rotate 0
со страницы руководства
повернуть счет Перед удалением или отправкой по адресу, указанному в почтовой директиве, файлы журналов меняются количество раз. Если count равно 0, старые версии удаляются, а не меняются.
Ты наверное хочешь
rotate 9
Что касается того, почему вы видите все другие файлы, я предполагаю, что они старые (проверьте дату / время), и logrotate не рассматривает их, потому что они не соответствуют имени app-web.txt. Я бы просто заархивировал те, которые мне были нужны, на соответствующий период, а затем удалил их. Затем я ожидал, что logrotate начнет управлять файлами, как ожидалось.
Обратите внимание, что обычно cron настроен на запуск logrotate только один раз в день (/etc/cron.dailylogrotate). Если вы хотите вращать файлы в зависимости от размера и этот размер достигается чаще, чем один раз в день, вам нужно будет запускать logrotate чаще.