Jump to content

# Logrotate (Українська)

From ArchWiki

Джерело https://github.com/logrotate/logrotate:

  Утиліта logrotate призначена для спрощення адміністрування файлів журналу в системі, яка створює багато файлів журналу. Logrotate дозволяє здійснювати автоматичну ротацію зі стисненням, видаленням та надсиланням файлів журналу. Logrotate можна налаштувати на обробку файлу журналу щодня, щотижня, щомісяця або коли файл журналу досягає певного розміру.

За замовчуванням ротація logrotate складається з перейменування існуючих файлів журналу з числовим суфіксом, а потім відновлення оригінального порожнього файлу журналу. Наприклад, `/var/log/syslog.log` є перейменованим `/var/log/syslog.log.1`. Якщо `/var/log/syslog.log.1` вже існує з попередньої ротації, його буде спочатку перейменовано на `/var/log/syslog.log.2`. (Можна налаштувати кількість резервів для зберігання.)

## Встановлення

Logrotate можна встановити за допомогою пакета logrotate.

За замовчуванням logrotate запускається щодня за допомогою таймера systemd timer: `logrotate.timer`.

## Налаштування

Основним файлом конфігурації logrotate, який встановлює параметри за замовчуванням, є `/etc/logrotate.conf`; додаткові конфігураційні файли специфічних програм включено з каталогу `/etc/logrotate.d`. Значення, встановлені у файлах конфігурації для конкретної програми, замінюють ті самі параметри в основному файлі конфігурації. Перегляньте logrotate.conf(5) для прикладів конфігурації та посилання на доступні директиви.

Щоб перевірити, чи logrotate працює правильно, запустіть його в режимі налагодження, у цьому режимі він не робить нічого, крім виведення налагоджувального виводу:

    $ logrotate --debug /etc/logrotate.conf

### Стиснення журналів

Logrotate може стискати журнали за допомогою спеціальної команди, наприклад `zstd`.

    /etc/logrotate.conf

    compress
    compresscmd /usr/bin/zstd
    compressext .zst
    compressoptions -T0 --long
    uncompresscmd /usr/bin/unzstd

Дивіться logrotate.conf(5) та zstd(1) для більш детальної інформації.

## Використання

logrotate зазвичай запускається через службу systemd: `logrotate.service`.

Щоб запустити logrotate вручну:

    # logrotate /etc/logrotate.conf

Для ротації одного файлу журналу:

    # logrotate /etc/logrotate.d/mylog

Щоб імітувати запуск файлу конфігурації (сухий запуск):

    # logrotate --debug /etc/logrotate.d/mylog

Щоб примусово виконувати ротацію, навіть якщо умови не виконуються, виконайте:

    # logrotate -vf /etc/logrotate.d/mylog

Дивіться logrotate(8) для більш детальної інформації.

## Вирішення проблем

### exim log not rotated

Якщо ви встановили змінну `olddir` у `/etc/logrotate.conf`,, ви отримаєте таке повідомлення:

`error: failed to rename /var/log/exim/mainlog to /var/log/old/mainlog.1: Permission denied`

Щоб виправити це, додайте користувача `exim` до журналу групи `log`. Потім змініть групу `olddir`, як правило, `/var/log/old`, на `log` замість стандартної `root`.

### Перевірка статусу logrotate

Ротації Logrotate зазвичай реєструються в `/var/lib/logrotate.status` (Параметр `-s` дозволяє вказати інший файл стану):

    /var/lib/logrotate.status

    "/var/log/mysql/query.log" 2016-3-20-5:0:0
    "/var/log/samba/samba-smbd.log" 2016-3-21-5:0:0
    "/var/log/httpd/access_log" 2016-3-20-5:0:0
    ...

### Skipping log because parent directory has insecure permission

Налаштуйте, який користувач і яка група має виконувати завдання `/etc/logrotate.d/job`:

    file-to-be-rotated {
        su user group
        rotate 4
    }

## Дивіться також

- Gentoo:Logrotate
- logrotate(8) manual page
- logrotate.conf(5) manual page

Category:

- Logging (Українська)

Logrotate (Українська)
Add topic