logrotate - ротация журнальных файлов

По умолчанию в системе уже установлен пакет logrotate и настроен на ротацию log файлов для директории /var/log Если пакет не установлен то установим:
apt-get install logrotate

или для CentOS
yum install logrotate


Главный конфигурационный файл: /etc/logrotate.conf
Пользовательские и системные конфигурационные файлы находятся тут: /etc/logrotate.d/

В предыдущем топике Настраиваем сервер для хостинга сайтов: nginx+apache+php+mysql мы настраивали сервер для хостинга домена test.ru
Для домена была создана директория для журнальных файлов /home/test.ru/logs/
Настроим ротацию всех файлов из этой директории.

Создаем конфиг файл для ротатора:
nano /etc/logrotate.d/test.ru

со следующим содержимым:
/home/test.ru/logs/*.log {
daily # ежедневная ротация журнальных файлов
compress # сжимать архивную копию
delaycompress # оставлять новые журнальные файлы не сжатыми
notifempty # если log файл за текущие сутки пустой то ротацию не выполнять
missingok # не проверять наличие
rotate 14 # количество копий
# mail webmaster@example.com # отправлять копию на почту
create 644 root root # создавать пустой лог после ротации, права, пользователь, группа
sharedscripts # запустить скрипт или утилиту после ротации всех логов
postrotate # выполнить указанный скрипт после ротации
apache2ctl restart > /dev/null # перезапустим apache
kill -USR1 `cat /var/run/nginx.pid` # посылаем сигнал nginx
endscript # признак окончания вызова скрипта
}

Добавляем созданный конфиг в ротацию:
logrotate -v -f /etc/logrotate.d/test.ru


В итоге все log файлы для нашего домена включены в ежедневную ротацию с сохранением 14 последних копий.
  • 0
  • 25 сентября 2013, 12:58
  • admin

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.