Rain Wiki · Linux

logrotate

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

Linux · Rain Wiki

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.

Източници

Последна промяна: 2026-10-08

Свързани статии