Ротація логів за допомогою logrotate

Утиліта logrotate служить для контролювання системи логування (записи звітів про роботу та помилки програм).
Logrotate відмінно конфігурується утиліта: можна задати кількість збережених стислих логів (старі логи архівуються в tar і gzip); максимальний розмір файлу лога; кількість збережених стислих фрагментів (дуже старі записи будуть видалятися); так само можна налаштувати періодичність запуску ротирование і навіть відправлення повідомлень поштою, але головна функція - стежити за розмірами балок.
Так само примітно, що можна налаштовувати різні параметри ротирование для конкретних файлів логів.
Для досвідчених користувачів є написання скриптів prerotate і postrotate.

установка
У багатьох дистрибутивах logrotate доступний в репозиторії або вже встановлений і включений. Так само можете скомпілювати пакунок з джерельного коду.

Налаштування
Всі налаштування зберігаються у файлі під назвою logrotate.conf.
У мене logrotate вже встановлений в системі і файл конфігурації перебуває в /etc/logrotate.conf
Давайте поглянемо на нього:
sudo kate /etc/logrotate.conf
Вміст файлу:

# See "man logrotate" for details
# Rotate log files weekly
weekly

# Keep 4 weeks worth of backlogs
rotate 4

# Create new (empty) log files after rotating old ones
create

# Uncomment this if you want your log files compressed
#compress

# Packages drop log rotation information into this directory
include /etc/logrotate.d

# No packages own wtmp, or btmp - we'll rotate them here
/ Var / log / wtmp missingok
monthly
create 0664 root utmp
rotate 1
>

/ Var / log / btmp missingok
monthly
create 0660 root utmp
rotate 1
>

запуск logrotate
Якщо ви тільки встановили logrotate, то створіть і наповніть конфігураційний файл logrotate.conf
Приклад простого конфіга:

size = 10M
weekly
rotate 2
compress
include /etc/logrotate.d


І запустіть logrotate:
sudo logrotate -f путь_до_logrotate.conf

Опції команди logrotate
-d, --debug-нічого не робити, просто виконати тест або налагодження (спільно з -v).
-f, --force Початок роботи, навіть якщо час ще не настав.
-m, --mail = command -вказати команду для відправки електронної пошти.
-s, --state = statefile -використання альтернативного файлу стану.
-v, --verbose вивід зневадження.
В оригіналі:

$ Logrotate --help
Використання: logrotate [OPTION. ]
-d, --debug Do not do anything, just test (implies -v)
-f, --force Force file rotation
-m, --mail = command Command to send mail (instead of `/ usr / bin / mail ')
-s, --state = statefile Path of state file
-v, --verbose Display messages during rotation

Help options:
-. --help Show this help message
--usage Display brief usage message