Настроить ротацию логов
Конфигурация службы · Среднее · 20 мин · 150 баллов
Настроить ротацию логов
Приложение пишет в /var/log/myapp/app.log и не ограничивает его рост — файл уже
большой и со временем забьёт диск. Нужно настроить штатную ротацию через logrotate.
Задача
Настрой ротацию так, чтобы:
- лог
/var/log/myapp/app.logротировался по расписанию (ежедневно), хранил несколько архивов и сжимал старые; - правило лежало отдельным файлом в
/etc/logrotate.d/и было синтаксически верным; - пробный прогон ротации проходил без ошибок и реально создавал архив.
Подсказки по подходу
- Правила logrotate кладут в
/etc/logrotate.d/<имя>; типичные опции:daily,rotate 7,compress,missingok,notifempty,copytruncate(илиcreate). - Если лог держит открытым процесс, не умеющий переоткрывать файл — нужен
copytruncate, иначе ротация «обнулит» не тот дескриптор. - Проверка и пробный прогон:
logrotate -d <конфиг>(debug, ничего не меняет) иlogrotate -f <конфиг>(форсированный прогон). - Проверяй результат по кнопке «Проверить».
Всё нужное уже установлено. Интернет на машине отсутствует — и не понадобится.
Подсказки
Подсказка 1
Создай файл /etc/logrotate.d/myapp. Внутри опиши путь к логу и блок опций в фигурных
скобках. За образец возьми любой существующий файл в /etc/logrotate.d/.
Подсказка 2
Минимальный рабочий набор:
/var/log/myapp/app.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
copytruncate нужен, если приложение держит файл открытым и не переоткрывает его.
Подсказка 3
Проверь конфиг «вхолостую»: sudo logrotate -d /etc/logrotate.d/myapp (ошибок быть не
должно), затем форсируй: sudo logrotate -f /etc/logrotate.d/myapp и убедись, что
появился архив (ls -l /var/log/myapp/).
Поднимет вашу личную эфемерную Linux-ВМ для задания — обычно пара секунд. После работы её можно остановить.