Ротація логів за допомогою 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