Настройка logrotate в Debian / Ubuntu. Ротация логов

Logrotate - программа для управления лог-файлами, автоматически архивирует, удаляет, очищает их.

Установка:

# aptitude install logrotate


Файлы настроек находятся в /etc/logrotate.d/
Пример настройки ротации логов для nginx:

/var/log/nginx/*.log {

weekly
# ротация раз в неделю

missingok
# отсутствие файла не является ошибкой

rotate 52
# сохраняется последние 52 ротированных файла

compress
# сжимать ротируемый файл

delaycompress
# сжимать предыдущий файл при следующей ротации

notifempty
# не обрабатывать пустые файлы

create 640 root adm
# сразу после ротации создать пустой файл с заданными правами и пользователем

sharedscripts
# скрипты prerotate/postrotate будут выполнены только один раз не зависимо от количества журналов, подходящих под заданный шаблон
postrotate

# скрипт будет выполнен сразу после ротации
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
}

Проверяем как все у нас будет работать (ничего не создастся и не удалиться, это только проверка):

# logrotate -d /etc/logrotate.d/nginx

Если все в порядке, можно запустить ротацию:

# logrotate -v -f /etc/logrotate.d/nginx

Настройка logrotate в Debian / Ubuntu. Ротация логов: 4 комментария

  1. Ваша инструкция работает, но есть одна ошибка - после ротации nginx не пишет в новый файл acceess.log, а пишет в старый, но уже переименованный access.log.1
    Перерыл кучу сайтов, но не нашёл ответа. Проблема появилась после upgrade OS.
    Ubuntu 14, nginx 1.8

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *