Приложение без встроенной ротации логов рано или поздно съедает диск. logrotate решает это декларативно: конфиг сервиса — в /etc/logrotate.d/, общие настройки — в /etc/logrotate.conf.

Минимальный конфиг:

/var/log/myapp/*.log {
    daily
    rotate 14
    compress
    delaycompress
    postrotate
        systemctl reload myapp
    endscript
}

rotate 14 — сколько копий хранить, delaycompress откладывает сжатие последней копии на цикл вперёд — иначе процесс, ещё пишущий в старый file descriptor, получит на руки уже гзипнутый файл. postrotate/endscript — команда после ротации, обычно переоткрыть лог демону.

Сам logrotate не крутится в фоне — на большинстве дистрибутивов его запускает logrotate.timer или ежедневный cron.

#linux