Logrotate это инструмент, используемый системными администраторами, чтобы облегчить управление большими лог — файлами, созданных с помощью системных служб. Наиболее важными особенностями Logrotate являются автоматическое дробление журналов, сжатия журнала, удаление журналов и отправка по почте файлов журналов. На этом уроке, мы собираемся показать вам, как использовать Logrotate для управления лог — файлами, генерируемыми службами, работающих на вашем Linux VPS.
Перед тем , как начать, убедитесь, что Logrotate установлен на вашем сервере. Подключитесь к серверу через SSH и проверьте, если Logrotate установлен с помощью следующей команды:
sudo dpkg -l | grep logrotate
Если он не установлен на вашем Ubuntu VPS, мы поможем Вам установить его. Во- первых, убедитесь, что все пакеты и их обновления в настоящее время установленные в системе обновлены до последней версии, используя следующие команды:
sudo apt-get update sudo apt-get upgrade
После того, как менеджер пакетов завершит обновление, установим Logrotate:
sudo apt-get install logrotate
Убедитесь в том, что установка прошла успешно:
sudo logrotate
Вы должны получить сообщение вроде следующего:
logrotate 3.8.7 - Copyright (C) 1995-2001 Red Hat, Inc. This may be freely redistributed under the terms of the GNU Public License Usage: logrotate [-dfv?] [-d|--debug] [-f|--force] [-m|--mail=command] [-s|--state=statefile] [-v|--verbose] [--version] [-?|--help] [--usage] [OPTION...]
Основной конфигурационный файл для Logrotate это /etc/logrotate.conf
в то время, как файлы конфигурации приложения хранятся в каталоге /etc/logrotate.d
.
В зависимости от того, какие установлены службы на вашем Ubuntu VPS, то каталог /etc/logrotate.d
может содержать больше или меньше конфигурационных файлов. Если вы еще не проверили, теперь настало время, чтобы получить список содержимого этого каталога и ознакомиться с услугами, для которых Logrotate настроен на работу. В качестве примера мы будем использовать файл /etc/logrotate.d/dpkg
, чтобы показать вам некоторые из наиболее важных параметров конфигурации. Откройте файл с помощью текстового редактора:
sudo nano /etc/logrotate.d/dpkg
Содержимое файла конфигурации должно быть аналогично приведенному ниже:
/var/log/dpkg.log { monthly rotate 12 compress delaycompress missingok notifempty create 644 root root } /var/log/alternatives.log { monthly rotate 12 compress delaycompress missingok notifempty create 644 root root }
Logrotate запускает /var/log/dpkg.log
и /var/log/alternatives.log
ежемесячно. Время обработки задается с опцией monthly
. Другие варианты обработки являются daily
, hourly
, weekly
и yearly
.
rotate
рассказывает, сколько раз файлы журналов должны быть обработаны перед удалением или по почте по определенному адресу. В этом примере файлы журнала будут обработаны 12 раз. В случае, когда rotate
установлен, старые файлы журналов удаляются, а не обрабатываются.
Следующий параметр — compress
который определяет, что старые версии лог — файлов должны быть сжаты. Альтернативный вариант, nocompress
и в могут быть использованы в тех случаях, когда старые версии файлов журналов не должны быть сжаты.
delaycompress
указывает, что сжатие предыдущего файла журнала следует отложить до следующего цикла ротации.
missingok
и notifempty
используются, чтобы пропустить обработку без выдачи сообщения об ошибке, если файл журнала отсутствует и пропустить обработку, если файл журнала пуст.
create 644 root root
используется, чтобы немедленно создать файл журнала после обработке с использованием конкретного режима, владельца и группы.
Другой вариант, который не упоминается в этом примере и может оказаться полезными в ваших пользовательских конфигураций: size
. Эта опция позволяет настроить Logrotate обрабатывать лог — файлы, только если они получают больше определенного размера. Размер может быть указан в байтах, килобайтах, мегабайтах и гигабайтах. Поэтому size 100
, size 100k
, size 100M
и size 100G
все действительны.
Для подробной информации и параметров конфигурации вы можете проверить страницу руководства Logrotate.
man logrotate
По умолчанию Logrotate запускается как ежедневная задача с помощью cron. Для получения более подробной информации о работе cron вы можете проверить /etc/cron.daily/logrotate
. Вы можете свободно настроить работу cron для Logrotate запускать ежечасно, еженедельно, раз в год или в определенное время и/или день.