Если приложение постоянно пишет в файл, лог может быстро разрастись до гигабайтов. Настроим простую ротацию, чтобы старые логи архивировались, а новые продолжали писаться в свежий файл.
Допустим, приложение пишет сюда:
/var/log/myapp/app.log
Создадим конфиг:
sudo nano /etc/logrotate.d/myapp
Минимальная настройка:
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
}Это значит: ротировать каждый день, хранить 7 архивов, сжимать старые файлы и не ругаться, если лог отсутствует.
Если приложению нужно пересоздать файл после ротации, добавим postrotate:
postrotate
systemctl reload myapp
endscript
Полный вариант:
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
postrotate
systemctl reload myapp
endscript
}Проверить конфиг можно без реальной ротации:
sudo logrotate -d /etc/logrotate.d/myapp
А принудительно запустить:
sudo logrotate -f /etc/logrotate.d/myapp
После проверки посмотри файлы:
ls -lh /var/log/myapp/
logrotate защищает сервер от бесконечно растущих логов. Это базовая, но очень важная настройка для сервисов, cron-задач и backend-приложений.
➡️ DevOps Ready | #практика