На главную
DevOps и серверы
Конфиг logrotate
Собирает файл для /etc/logrotate.d: частота или размер, сколько копий хранить, сжатие, create или copytruncate, su для каталогов не-root и postrotate, чтобы приложение переоткрыло лог. Тут же — оценка места на диске и команды проверки.
Какие логи
Маска *.log, а не * — иначе захватит уже повёрнутые копии
Когда и сколько
Вращать при превышении, независимо от частоты
По частоте, но и раньше, если файл вырос
По частоте, но не меньше этого размера
Сжатие и имена
Новый файл и права
Скрипты
/etc/logrotate.d/my-app
/var/log/my-app/*.log {
daily
rotate 14
missingok
notifempty
compress
delaycompress
create 0640 root adm
}
Сколько займёт на диске
660 МБ
всего с текущим файлом
14
дней истории
200 МБ
один файл до сжатия
Текстовые логи жмутся в 10–20 раз: считаем gzip ≈ 10 %, zstd ≈ 8 %, xz ≈ 6 % исходного размера. Со своими логами проверьте: gzip -c файл | wc -c.
Установка и проверка
sudo install -m 0644 my-app /etc/logrotate.d/my-app sudo logrotate -d /etc/logrotate.d/my-app # сухой прогон: что сделал бы, ничего не трогая sudo logrotate -f /etc/logrotate.d/my-app # принудительно повернуть сейчас grep -F '/var/log/my-app' /var/lib/logrotate/status # когда вращали в последний раз