Logrotate перезапуск службы. Описание и примеры настройки logrotate в Linux

Logrotate — приложение, разработанное для облегчения управления лог-файлами . Особенно Logrotate полезен там, где создается большое количество лог-файлов. Утилита позволяет в автоматическом режиме архивировать, удалять, очищать и отправлять на e-mail лог-файлы. Этот процесс обычно называетсяротацией лог файлов .

Logrotate может быть настроен на ежедневную, еженедельную или ежемесячную ротацию. Кроме того, можно задать размер файла, по достижении которого файл будет ротирован. Обычно logrotate выполняется в качестве каждодневного задания (cron).

Установка Logrotate
Установка обычна для Debian / Ubuntu-based дистрибутивов:

$ sudo aptitude install logrotateКраткое описание файла настроек Logrotate Описание того, каким образом Logrotate будет работать с тем или иным лог файлом находится в специальном конфигурационном файле. Как правило, они располагаются в директории /etc/logrotate.d/ . Например, файл конфигурации для apache2 выглядит следующим образом: $ more /etc/logrotate.d/apache2 /var/log/apache2/*.log { weekly # ротация раз в неделю missingok # отсутствие файла не является ошибкой rotate 52 # сохраняется последние 52 ротированных файла compress # сжимать ротируемый файл delaycompress # сжимать предыдущий файл при следующей ротации # (т.е. файл *.log.1 будет не сжат, а *.log.2 и далее сжатыми) notifempty # не обрабатывать пустые файлы create 640 root adm # сразу после ротации создать пустой файл с заданными правами и пользователем sharedscripts # крипты prerotate/postrotate будут выполнены только один раз # не зависимо от количества журналов, подходящих под заданный шаблон postrotate # скрипт будет выполнен сразу после ротации if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then /etc/init.d/apache2 reload > /dev/null fi endscript }

При этом, первая строка /var/log/apache2/*.log есть ничто иное, как шаблон обрабатываемых лог-файлов. Он означает, что указанная конфигурация ротации будет использоваться для всех файлов, находящихся в директории /var/log/apache2/ и имеющих расширение «log».

Допустимых директив в конфигурационном файле очень много (более 40). Подробнее о них можно узнать из man logrotate .

Основные опции Logrotate

Как правило, после настройки конфигурационного файла появляется необходимость проверить работуlogrotate для новых логов. Для этого есть возможность непосредственного запуска logrotate из командной строки. При этом допускаются следующие опции:

  • -d . Включает режим отладки, а так же дублирует опцию -v . В режиме отладки никаких действий с логами не будет выполнено.
  • -f, —force . Заставляет logrotate выполнить ротацию логов. Бывает необходимо после добавления новых конфигурационных файлов или если старый лог файл был удалён вручную; таким образом будут созданы новые лог-файлы и журналирование будет корректно продолжено.
  • -m, —mail command . Указывает, какую команду использовать для отправки журналов по почте. Команда должна принимать 2 входных параметра:
    • заголовок письма
    • получателя письма
  • -s, —state statefile . Указывает на использование альтернативный файл состояния. Полезно в случаях, когда logrotate работает от имени разных пользователей для различных наборов лог-файлов. Дефолтный файл состояния: /var/lib/logrotate/status
  • —usage . Выводит краткую инструкцию по использованию утилиты.
  • -v, —verbose . Вывод диагностических сообщений во время ротации

Пример настройки Logrotate

В качестве примера допустим, что в директории /home/site/сайт/logs/ располагаются лог-файлы таких веб серверов, как nginx и apache. Работают они в связке: — фронтенд, apache2-бэкенд.

$ more /etc/logrotate.d/debianworld.ru # Ротация логов nginx (front-end) # Отдает статику, все остальное - проксирует на apache. # Лог ведется более интенсивно. /home/dw/debianworld.ru/logs/nginx_*.log { daily # ежедневная ротация missingok # отсутствие файла не является ошибкой rotate 45 # хранится история за 45 дней compress # ротируемые файлы сжимаются delaycompress # ротируемый файл не сжимается, остальные - сжимаются notifempty # не обрабатывать пустые файлы create 640 dw www-data # права, пользователь нового файла sharedscripts # prerotate/postrotate выполняются только 1 раз prerotate # Cбор статистики посещений для AWstats /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -update -config=debianworld.ru -databasebreak=day endscript postrotate # Перезапуск nginx [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` endscript } # Ротация логов apache2 (back-end) # Лог ведется менее интенсивно. /home/dw/debianworld.ru/logs/apache*.log { weekly # еженедельная ротация missingok # отсутствие файла не является ошибкой rotate 4 # хранится история за 4 недели compress # ротируемые файлы сжимаются nodelaycompress # ротируемый файл так же сжимается notifempty # не обрабатывать пустые файлы create 640 dw www-data # права, пользователь нового файла sharedscripts # postrotate выполняется только 1 раз postrotate # Перезапуск apache2 if [ -f /var/run/apache.pid ]; then /etc/init.d/apache2 restart > /dev/null fi endscript }

Logrotate - приложение, разработанное для облегчения управления лог-файлами. Особенно Logrotate полезен там, где создается большое количество лог-файлов. Утилита позволяет в автоматическом режиме архивировать, удалять, очищать и отправлять на e-mail лог-файлы. Этот процесс обычно называется ротацией лог файлов.

Logrotate может быть настроен на ежедневную, еженедельную или ежемесячную ротацию. Кроме того, можно задать размер файла, по достижении которого файл будет ротирован. Обычно logrotate выполняется в качестве каждодневного задания Использование планировщика cron в Linux .

Краткое описание файла настроек Logrotate

Описание того, каким образом Logrotate будет работать с тем или иным лог файлом находится в специальном конфигурационном файле. Как правило, они располагаются в директории /etc/logrotate.d/. Например, файл конфигурации для apache2 выглядит следующим образом:

$ more /etc/logrotate.d/apache2 /var/log/apache2/*.log { weekly # ротация раз в неделю. Возможные варианты daily, weekly, # monthly, size (например size=1M) missingok # отсутствие файла не является ошибкой rotate 52 # сохраняется последние 52 ротированных файла compress # сжимать ротируемый файл delaycompress # сжимать предыдущий файл при следующей ротации # (т.е. файл *.log.1 будет не сжат, а *.log.2 и далее сжатыми) notifempty # не обрабатывать пустые файлы create 640 root adm # сразу после ротации создать пустой файл с заданными правами и пользователем sharedscripts # крипты prerotate/postrotate будут выполнены только один раз # не зависимо от количества журналов, подходящих под заданный шаблон postrotate # скрипт будет выполнен сразу после ротации if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then /etc/init.d/apache2 reload > /dev/null fi endscript }

При этом, первая строка /var/log/apache2/*.log есть ничто иное, как шаблон обрабатываемых лог-файлов. Он означает, что указанная конфигурация ротации будет использоваться для всех файлов, находящихся в директории /var/log/apache2/ и имеющих расширение "log".

Допустимых директив в конфигурационном файле очень много (более 40). Подробнее о них можно узнать из man logrotate.

    Директивы:

    mail - указывает куда отсылать ротированный файл

    mailfirst - отсылать первую ротированную комию; maillast - отсылать последнюю ротированную копию

postrotate reload rsyslog >/dev/null 2>&1 || true # for Debian invoke-rc.d rsyslog reload > /dev/null # for RHEL endscript

    copytruncate - после создания копии, обрезать исходный файл журнала взамен перемещения старого файла журнала и создания нового. Это может найти применение в том случае, когда некоторой программе нельзя указать закрыть её журнал, и таким образом можно постоянно продолжать запись (добавление) в существующий файл журнала. Примите во внимание, что хотя между копированием файла и его обрезанием очень маленький промежуток времени, некоторая часть журналируемых данных может быть потеряна. При использовании этого параметра, не имеет силы директива create, так как старый файл журнала остаётся на своём месте.

Основные опции Logrotate и тестирование

Как правило, после настройки конфигурационного файла появляется необходимость проверить работу logrotate для новых логов. Для этого есть возможность непосредственного запуска logrotate из командной строки. При этом допускаются следующие опции:

    D. Включает режим отладки, а так же дублирует опцию -v. В режиме отладки никаких действий с логами не будет выполнено.

    F, –force. Заставляет logrotate выполнить ротацию логов. Бывает необходимо после добавления новых конфигурационных файлов или если старый лог файл был удалён вручную; таким образом будут созданы новые лог-файлы и журналирование будет корректно продолжено.

    M, –mail command. Указывает, какую команду использовать для отправки журналов по почте. Команда должна принимать 2 входных параметра: заголовок письма получателя письма. После этого команда должна прочитать сообщение со стандартного входа (STDIN) и отправить его получателю. Командой по умолчанию является /usr/bin/mail -s

    S, –state statefile. Указывает на использование альтернативный файл состояния. Полезно в случаях, когда logrotate работает от имени разных пользователей для различных наборов лог-файлов. Файл состояния: /var/lib/logrotate/status

    –usage. Выводит краткую инструкцию по использованию утилиты.

    V, –verbose. Вывод диагностических сообщений во время ротации.

    Для немедленного применения изменений нужно запустить команду: # logrotate /etc/logrotate.conf

    Для проверки изменений нужно запустить команду (никаких действий с логами не будет выполнено): # logrotate -d /etc/logrotate.conf

Logrotate — приложение, разработанное для облегчения управления лог-файлами . Особенно Logrotate полезен там, где создается большое количество лог-файлов. Утилита позволяет в автоматическом режиме архивировать, удалять, очищать и отправлять на e-mail лог-файлы. Этот процесс обычно называетсяротацией лог файлов .

Logrotate может быть настроен на ежедневную, еженедельную или ежемесячную ротацию. Кроме того, можно задать размер файла, по достижении которого файл будет ротирован. Обычно logrotate выполняется в качестве каждодневного задания (cron).

Установка Logrotate
Установка обычна для Debian / Ubuntu-based дистрибутивов:

$ sudo aptitude install logrotateКраткое описание файла настроек Logrotate Описание того, каким образом Logrotate будет работать с тем или иным лог файлом находится в специальном конфигурационном файле. Как правило, они располагаются в директории /etc/logrotate.d/ . Например, файл конфигурации для apache2 выглядит следующим образом: $ more /etc/logrotate.d/apache2 /var/log/apache2/*.log { weekly # ротация раз в неделю missingok # отсутствие файла не является ошибкой rotate 52 # сохраняется последние 52 ротированных файла compress # сжимать ротируемый файл delaycompress # сжимать предыдущий файл при следующей ротации # (т.е. файл *.log.1 будет не сжат, а *.log.2 и далее сжатыми) notifempty # не обрабатывать пустые файлы create 640 root adm # сразу после ротации создать пустой файл с заданными правами и пользователем sharedscripts # крипты prerotate/postrotate будут выполнены только один раз # не зависимо от количества журналов, подходящих под заданный шаблон postrotate # скрипт будет выполнен сразу после ротации if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then /etc/init.d/apache2 reload > /dev/null fi endscript }

При этом, первая строка /var/log/apache2/*.log есть ничто иное, как шаблон обрабатываемых лог-файлов. Он означает, что указанная конфигурация ротации будет использоваться для всех файлов, находящихся в директории /var/log/apache2/ и имеющих расширение «log».

Допустимых директив в конфигурационном файле очень много (более 40). Подробнее о них можно узнать из man logrotate .

Основные опции Logrotate

Как правило, после настройки конфигурационного файла появляется необходимость проверить работуlogrotate для новых логов. Для этого есть возможность непосредственного запуска logrotate из командной строки. При этом допускаются следующие опции:

  • -d . Включает режим отладки, а так же дублирует опцию -v . В режиме отладки никаких действий с логами не будет выполнено.
  • -f, —force . Заставляет logrotate выполнить ротацию логов. Бывает необходимо после добавления новых конфигурационных файлов или если старый лог файл был удалён вручную; таким образом будут созданы новые лог-файлы и журналирование будет корректно продолжено.
  • -m, —mail command . Указывает, какую команду использовать для отправки журналов по почте. Команда должна принимать 2 входных параметра:
    • заголовок письма
    • получателя письма
  • -s, —state statefile . Указывает на использование альтернативный файл состояния. Полезно в случаях, когда logrotate работает от имени разных пользователей для различных наборов лог-файлов. Дефолтный файл состояния: /var/lib/logrotate/status
  • —usage . Выводит краткую инструкцию по использованию утилиты.
  • -v, —verbose . Вывод диагностических сообщений во время ротации

Пример настройки Logrotate

В качестве примера допустим, что в директории /home/site/сайт/logs/ располагаются лог-файлы таких веб серверов, как nginx и apache. Работают они в связке: — фронтенд, apache2-бэкенд.

$ more /etc/logrotate.d/debianworld.ru # Ротация логов nginx (front-end) # Отдает статику, все остальное - проксирует на apache. # Лог ведется более интенсивно. /home/dw/debianworld.ru/logs/nginx_*.log { daily # ежедневная ротация missingok # отсутствие файла не является ошибкой rotate 45 # хранится история за 45 дней compress # ротируемые файлы сжимаются delaycompress # ротируемый файл не сжимается, остальные - сжимаются notifempty # не обрабатывать пустые файлы create 640 dw www-data # права, пользователь нового файла sharedscripts # prerotate/postrotate выполняются только 1 раз prerotate # Cбор статистики посещений для AWstats /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -update -config=debianworld.ru -databasebreak=day endscript postrotate # Перезапуск nginx [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` endscript } # Ротация логов apache2 (back-end) # Лог ведется менее интенсивно. /home/dw/debianworld.ru/logs/apache*.log { weekly # еженедельная ротация missingok # отсутствие файла не является ошибкой rotate 4 # хранится история за 4 недели compress # ротируемые файлы сжимаются nodelaycompress # ротируемый файл так же сжимается notifempty # не обрабатывать пустые файлы create 640 dw www-data # права, пользователь нового файла sharedscripts # postrotate выполняется только 1 раз postrotate # Перезапуск apache2 if [ -f /var/run/apache.pid ]; then /etc/init.d/apache2 restart > /dev/null fi endscript }

Logrotate - приложение, разработанное для облегчения управления лог-файлами . Особенно Logrotate полезен там, где создается большое количество лог-файлов. Утилита позволяет в автоматическом режиме архивировать, удалять, очищать и отправлять на e-mail лог-файлы. Этот процесс обычно называется ротацией лог файлов .

Logrotate может быть настроен на ежедневную, еженедельную или ежемесячную ротацию. Кроме того, можно задать размер файла, по достижении которого файл будет ротирован. Обычно logrotate выполняется в качестве каждодневного задания (cron).

Установка Logrotate

Установка обычна для Debian / Ubuntu-based дистрибутивов:

$ sudo aptitude install logrotate

Краткое описание файла настроек Logrotate

Описание того, каким образом Logrotate будет работать с тем или иным лог файлом находится в специальном конфигурационном файле. Как правило, они располагаются в директории /etc/logrotate.d/ . Например, файл конфигурации для apache2 выглядит следующим образом:

$ more /etc/logrotate.d/apache2 /var/log/apache2/*.log { weekly # ротация раз в неделю, возможна иная периодичность: daily, monthly missingok rotate 52 # сохраняется последние 52 ротированных файла compress # сжимать ротируемый файл delaycompress # сжимать предыдущий файл при следующей ротации # (т.е. файл *.log.1 будет не сжат, а *.log.2 и далее сжатыми) notifempty create 640 root adm # сразу после ротации создать пустой файл с заданными правами и пользователем sharedscripts # крипты prerotate/postrotate будут выполнены только один раз # не зависимо от количества журналов, подходящих под заданный шаблон postrotate # скрипт будет выполнен сразу после ротации if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid} `" ] ; then /etc/init.d/apache2 reload > /dev/null fi endscript }

При этом, первая строка /var/log/apache2/*.log есть ничто иное, как шаблон обрабатываемых лог-файлов. Он означает, что указанная конфигурация ротации будет использоваться для всех файлов, находящихся в директории /var/log/apache2/ и имеющих расширение "log".

Вместо
weekly
можно было указать
size 10M
тогда лог будет ротироваться вне зависимости от регулярности, но на основе своего размера: ротироваться будет лог по объему больший или равный 10 мегабайтам. Какой вариант более подходит вам — решайте сами. Но учтите, что при регулярной ротации, вам надо хотя бы примерно прикинуть максимальный размер лога, умножить его на количество сохраняых копий и убедится, что места у вас на диске хватит и останется (иначе вся ротация смысл теряет).

Допустимых директив в конфигурационном файле очень много (более 40). Поддробнее о них можно узнать из man logrotate .

Основные опции Logrotate

Как правило, после настройки конфигурационного файла появляется необходимость проверить работу logrotate для новых логов. Для этого есть возможность непосредственного запуска logrotate из командной строки. При этом допускаются следующие опции:

    -d . Всключает режим отладки, а так же дублирует опциию -v . В режиме отладки никаких действий с логами не будет выполнено.

    -f, --force . Заставляет logrotate выполнить ротацию логов. Бывает необходимо после добавления новых конфигурационных файлов или если старый лог файл был удалён вручную; таким образом будут созданы новые лог-файлы и журналирование будет корректно продолжено.

    -m, --mail command . Указывает, какую команду использовать для отправки журналов по почте. Команда должна принимать 2 входных параметра:

    • заголовок письма
    • получателя письма

    -s, --state statefile . Указывает на использование альтернативный файл состояния. Полезно в случаях, когда logrotate работает от имени разных пользователей для различных наборов лог-файлов. Дефолтный файл состояния: /var/lib/logrotate/status

    --usage . Выводит краткую инструкцию по использованию утилиты.

    -v, --verbose . Вывод диагностических сообщений во время ротации.

Пример настройки Logrotate

В качестве примера допустим, что в директории /home/site/debianworld.ru/logs/ располагаются лог-файлы таких веб серверов, как nginx и apache. Работают они в связке:nginx - фронтенд, apache2-бэкенд .

$ more /etc/logrotate.d/debianworld.ru # Ротация логов nginx (front-end) # Отдает статику, все остальное - проксирует на apache. # Лог ведется более интенсивно. /home/dw/debianworld.ru/logs/nginx_*.log { daily # ежедневная ротация missingok # отсутствие файла не является ошибкой rotate 45 # хранится история за 45 дней compress # ротируемые файлы сжимаются delaycompress # ротируемый файл не сжимается, остальные - сжимаются notifempty # не обрабатывать пустые файлы create 640 dw www-data sharedscripts # prerotate/postrotate выполняются только 1 раз prerotate # Cбор статистики посещений для AWstats /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -update -config=debianworld.ru -databasebreak=day endscript postrotate # Перезапуск nginx [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` endscript } # Ротация логов apache2 (back-end) # Лог ведется менее интенсивно. /home/dw/debianworld.ru/logs/apache*.log { weekly # еженедельная ротация missingok # отсутствие файла не является ошибкой rotate 4 # хранится история за 4 недели compress # ротируемые файлы сжимаются nodelaycompress # ротируемый файл так же сжимается notifempty # не обрабатывать пустые файлы create 640 dw www-data # права, пользователь нового файла sharedscripts # postrotate выполняется только 1 раз postrotate # Перезапуск apache2 if [ -f /var/run/apache.pid ] ; then /etc/init.d/apache2 restart > /dev/null fi endscript }

Logrotate – это программа которая дает возможность управлять логами в системы Unix/Linux. Утилита выполняет автоматическую ротацию, удаление или сжатие логов. Logrotate помогает сохранять место на диске. Утилиту довольно просто настроить и сейчас, вы убедитесь в этом.

Установка Logrotate для управления логами в Unix/Linux

Я приведу наглядные примеры использования на различных Unix/Linux ОС.

Установка Logrotate для управления логами в Debian/Ubuntu

Обновим пакеты в ОС:

# apt-get update -y

Для установки используем:

# apt-get install logrotate -y

Установка Logrotate для управления логами в CentOS/Fedora/RedHat

Обновим пакеты в ОС:

# yum update -y

Для установки используем:

# yum install logrotate -y

После чего, переходим к настройке и запуску логротейта.

Установка Logrotate для управления логами в Mac OS X

Выполняем установку HomeBrew — и, выполним поиск пакета:

$ brew search logrotate

Для установки, служит команда:

$ brew install logrotate

После чего, переходим к настройке и запуску logrotate.

Настройка Logrotate для управления логами в Unix/Linux

Конфигурационный файл можно найти в:

# vim /etc/logrotate.conf

Мой конфиг выглядит следующим образом:

Weekly create rotate 4 dateext include /etc/logrotate.d /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 } /var/log/btmp { missingok monthly create 0600 root utmp rotate 1 }

Логи уровня приложения (заменяющие настройки по умолчанию в случае необходимости) хранятся в:

/etc/logrotate.d/

Я не буду заморачиваться и пропишу один конфиг для всей ротации (можно настраивать для каждого отдельно):

# vim /etc/logrotate.d/For_ALL

Прописываем:

/var/log/*.log { monthly size 100M rotate 7 compress delaycompress missingok notifempty create 644 root root }

Я беру все логи которые имеют любое название и заканчиваются на.log и отслеживаю их в интервале — месяц (служит директива monthly). Если превышает размер лога (size 100M), то выполнить ротацию Ротация происходит после 7 дней (файлы сохраняются 7 дней). Лог-файлы я сжимаю (директива compress). Опция delaycompress задерживает выполнение сжатия до следующей ротации логов, но она работает только с параметром — compress. Параметр missingok дает возможность обрабатывать следующий лог если какой-то отсутствует и не выдавая об ошибке. С опций notifempty можно запретить ротацию пустых файлов. После ротации логов, все будет удалено и чтобы выполнялось сохранение логов, нужно создать файлы снова. Так вот, create позволяет это делать.

Если в конфиге используется опция size и интервал ротации (например, monthly), то именно опция size превзойдет опцию интервала ротации, — это означает что что логи будут ротироваться, как только размер файла превысит указанное значение, не дожидаясь истечения срока.

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

# logrotate -d /etc/logrotate.d/For_ALL

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

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

Вместо того, чтобы сжимать логи, можно переименовать их. Для этого есть директива dateext. Если наш формат даты отличается от yyyymmdd по умолчанию, мы можем указать его с помощью dateformat:

Dateext dateformat -%d%m%Y notifempty

Так же, можно по окончанию, отправить письмо на указанный емейл:

Mail mail_user@сайт

Если не хотите чтобы создавались пустые файлы после ротации, используйте:

Nocreate

Не откладывать сжатие файла на следующий цикл

Nodelaycompress

Если не хотите отправлять старые логи на почту, то юзайте:

Сохранять все логи в одной и той же папке:

Noolddir

Интервалы для ротации:

Daily weekly monthly yearly

Размеры для ротации (после превышения указанного размера, будет выполнятся ротация):

Size 6k size 66M size 66G

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

Postrotate echo "Ротация выполнена!" | mail root endscript

Данную утилиту, нужно запускать:

# logrotate /etc/logrotate.d/For_ALL

Можно автоматизировать и закинуть «logrotate» команду в crontab.

PS: По умолчанию, это возможно уже сделано:

# ls /etc/cron.daily/ cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron tmpwatch

Например, файл конфигурации для apache2 выглядит следующим образом:

/var/log/apache2/*.log { weekly missingok rotate 2 compress delaycompress notifempty create 640 root root sharedscripts postrotate if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then /etc/init.d/apache2 reload > /dev/null fi endscript }

Ротация производится раз в неделю. При отсутствии лога — не выводить ошибку. Сохранять 2 последних ротированных фалов и конечно же, сжимать их, но для пустых файлов никаких действий не выполнять. После того, как ротация прошла, создавать пустой файл с указанными правами.

Опции Logrotate

Наиболее часто использующиеся опции:

D — Данная опция, дает возможность включить отладочный режим, который использует «-v» параметр. В этом режиме, ничего не будет выполнятся и применятся.

F, —force — Данная опция, дает возможность принудительно запустить logrotate и запустить ротацию логов. Иногда бывает полезным, например — когда добавили новый функционал в конфиг или старые логи удалены вручную и чтобы не создавать новые файлы вручную, можно запустить логротейт с данной опцией.

M, —mail command — Позволяет указывать команду для отправки лог-файлов по почте и она должна содержать входные параметры:

  • заголовок письма
  • получателя письма

После выполнения, логи будут отправлены на указанное мыло (команда читает данные со стандартного входа STDIN), а командой по умолчанию — /usr/bin/mail -s.

S, —state statefile — Данная опция позволяет задавать произвольный файл с состоянием. Это хорошо использовать тогда, когда в системе имеется несколько пользователей, которые работают (запускают) с logrotate. По умолчанию, данный фал сохраняется в /var/lib/logrotate/status.

—usage — Показать мануал по использованию данной утилиты.

V, —verbose — Данная опция, позволяет выводит все происходящее на экран (весь вывод).

Вот и все, статья «Установка Logrotate для управления логами в Unix/Linux» завершена!