У меня есть следующая конфигурация для ротации журналов приложений.
/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 автоматически.
повернуть 0
на странице руководства
счетчик вращений Перед удалением или отправкой по адресу, указанному в почтовой директиве, файлы журналов меняются количество раз. Если count равно 0, старые версии удаляются, а не поворачиваются.
Вы, вероятно, захотите
rotate 9
Что касается того, почему вы видите все другие файлы, я предполагаю, что они старые (проверьте дату / время), а logrotate - не рассматривая их, потому что они не соответствуют имени app-web.txt . Я бы просто заархивировал те, которые мне были нужны, на соответствующий период, а затем удалил их. Тогда я ожидаю, что logrotate начнет управлять файлами, как ожидалось.
Обратите внимание, что обычно cron настроен на запуск logrotate только один раз в день (/etc/cron.dailylogrotate). Если вы хотите вращать файлы в зависимости от размера и этот размер достигается чаще, чем один раз в день, вам нужно будет запускать logrotate чаще.