Hi-Tech Arduino Компьютеры Интернет
HV-Lab Reference Linux Форум
Справочники Libraries Windows Галерея
Электроника Hardware Hardware Загрузки
Печатные платы Forum Программирование Мини-чат
[ Февр 26, 07:42 ] admin: Форум перешел в разряд архивного.
[ Февр 24, 19:02 ] admin: переехали на новый сервер. Грядут перемены.
[ Фев 20, 08:38 ] кулибин: Переход на SSL был непрост (особенно с абсолютными путями на изображения, но мы его осуществили)
RSS статьи
 
Статьи

Статьи->Linux->logrotate [ Поиск ]

logrotate - Автоматическая уборка "мусора"
Отправил: кулибин, Суббота, 02 Апреля 2011 13:42

        Чуть ранее я говорил о том, как настроить syslog-ng для сохранения системных логов и логов различных программ. Но упомянул, что стоит бы настроить автоматическую ротацию этих лог-файлов. Ведь это ужас — листать многомегабайтный лог-файл в поисках чего-либо. Период поиска при этом очень большой получается. Неудобно. К тому же, имея веб-сервер. У нас еще появляются лог-файлы от Apache, MySQL, Lighttpd, FTP сервера и так далее...

надо как-то это автоматизировать. И на помощь нам придет демон logrotate

Ставится в Gentoo он банально просто (как и сам Gentoo :) )

emerge logrotate

у него есть конфигурационный файл /etc/logrotate.conf, но нам он бесполезен. Главное, чтобы в нем была строчка

include /etc/logrotate.d

Собственно, в этой директории и лежат все нужные нам файлы. Причем для каждого из сервисов уже есть свой файл. Осталось только разобраться с настройками.

Во-первых, как часто будет происходить ротация логов?

Daily Weekly monthly - ежедневно, еженедельно. Ежемесячно

Во-вторых, сколько циклов ротаии будет сохраняться старый архив

rotate 4 при еженедельном обновлении даст 4 недели хранения старого архива

команда compress говорит о том, что лог надо сжать в архив. Этот архив получит имя лога плюс дату ротации. Удобно.

Notifempty указывает, что пустой лог файл сжимать не нужно, а missingok говорит о том, что попытка найти отсутствующий файл не вызовет ошибку.

postrotate и endscript внутри себя содержат команды, которые будут выполнены после ротации. Например, необходимо перезапустить сервис, создающий лог-файл, чтобы тот начал писать в свежий файл.

Таким образом, конфиг для Apache к примеру будет иметь следующий вид:

/var/log/apache2/*.log {
weekly
#еженедельно
rotate 10
#хранить архив 10 недель
missingok
#ну нет файла и нет, чего кричать то об этом?
Compress
#сжимаем, лишний объем нам не нужен
notifempty
#и пустой архив, собственно, тоже
sharedscripts
#файлов в папке много, а postrotate выполним всего один раз
postrotate
#собственно, сбросили все логи, перезапустим сам Apache
/etc/init.d/apache2 reload > /dev/null 2>&1 || true
endscript
}

Вообще, функций у logtotate очень много, достаточно вызвать

man logrotate

Одна из полезных функций — это ротация лога при превышении им какого-то заданного размера. Это полезно, когда лог пополняется редко и 2-3 записи в архиве ну вообще никому не нужны. Делается это параметром

size байт (1000, 1000K, 1000M, 100500G и т.д.)

и, конечно, два последних штриха:

запустим демона:

/etc/init.d/logrotate start

и пропишем его в автозагрузку:

rc-update add logrotate default

Артем Кашканов

 

Голосов Голосов: 0 - В среднем:

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

Статистика
Всего 205 статей в базе
Наиболее просматриваемые: Arduino и сеть RS485.
Лучшие по оценкам: РЦВМ1 - Релейная Цифровая Вычислительная Машина

Пользователи в разделе статьи: 2 (0 Пользователи 2 Гости и 0 Скрытые пользователи)
Видимые пользователи:


 
 

MKPortal©2003-2008 mkportal.it
MultiBoard ©2007-2009 RusMKPortal
Страница сгенерированна за 0.0183 секунд с 24 обращениями в базу данных

Intel Core i5-3450 2Gb RAM 100Gb HDD 100Mbps Ethernet

© Artem Kashkanov 2005-2016