# logrotate

> Как работи logrotate, как функционират конфигурацията му в /etc/logrotate.conf и /etc/logrotate.d и как да тестваш правило безопасно.

logrotate е инструмент за Linux, който ротира, компресира и премахва лог файлове, така че те да не запълват диска. Обикновено се стартира веднъж дневно от systemd таймер или cron задача и чете /etc/logrotate.conf, както и правилата за отделните пакети в /etc/logrotate.d/.

## Типично правило

Едно правило описва един или повече лог файлове и директиви като daily или weekly (колко често), rotate 7 (колко стари файла да се пазат), compress (компресиране на старите файлове с gzip), missingok (без грешка, ако файлът липсва), notifempty (пропускане на празни логове) и postrotate ... endscript (команда за изпълнение след ротацията, например за повторно отваряне на лога).

## copytruncate

Някои програми продължават да пишат в същия отворен файл. copytruncate копира лога и след това изрязва оригиналния вместо да го измества, така че програмата запазва файловия си дескриптор; няколко реда, записани по време на копирането, могат да бъдат загубени.

## Тестване

'logrotate -d /etc/logrotate.conf' се изпълнява в режим за отстраняване на грешки и само извежда какво би се случило. '-f' принудително стартира ротация, дори ако не ѝ е време.

## Как да добавиш и тестваш правило

1. Създай /etc/logrotate.d/myapp с пътя до лога и директиви, например weekly, rotate 4, compress, missingok, notifempty.
2. Сухо стартиране: sudo logrotate -d /etc/logrotate.d/myapp
3. Ако изходът изглежда правилен, принудително пусни една ротация: sudo logrotate -f /etc/logrotate.d/myapp
4. Провери резултата: ls -l на директорията с логове.

## Внимание

- Грешен шаблон за път може да ротира или изтрие логове на други програми.
- Логовете, управлявани от systemd journal, се ограничават в journald.conf, а не от logrotate.

## Източници

- [logrotate(8)](https://man7.org/linux/man-pages/man8/logrotate.8.html)
- [logrotate(8) (Debian)](https://manpages.debian.org/bookworm/logrotate/logrotate.8.en.html)

Последна промяна: 2026-10-08
URL: https://raincleaner.eu/bg/wiki/linux/logrotate
