Logrotate — настройка ротации логов в Debian.

Лог файлы одна из самых важных вещей в Linux. Собственно без них мы как без рук. Лично мне бы хотелось настроить ротацию лог файлом немного под себя.

Настраивается ротация лог  в двух местах. Первое это глобальная настройка для всех лог файлов, находиться она в файле /etc/logrotate.conf. Пример стандартной конфигурации :

# see «man logrotate» for details
# rotate log files weekly
weekly # Ротация каждую неделю.

# keep 4 weeks worth of backlogs
rotate 4 # Хранить 4 файла log.

# create new (empty) log files after rotating old ones
create # Создавать пустой лог файл.

# uncomment this if you want your log files compressed
#compress # Сжимать файлы.

# packages drop log rotation information into this directory
include /etc/logrotate.d # Ну а тут собственно подключаются файлы настройки ротации для конкретных программ.

Вот мы и подошли к второй части, настройки ротации для конкретных демонов. Список файлов находиться в /etc/logrotate.d/… Для примера посмотрим настройки  rsyslog :

/var/log/syslog # Путь к файлу.
{
rotate 7  
daily     # Ротация раз в день. Возможные варианты: daily(день), weekly(неделя), monthly(месяц).
missingok #Отсутствие файла не является ошибкой.
notifempty  #Не обрабатывать пустые файлы.
delaycompress #Не сжимать ‘свеже’ созданный архив. Например access.log.1 не будет сжат. Используется с compress.
compress 
postrotate 
invoke-rc.d rsyslog rotate > /dev/null
endscript  #Строки, находящиеся между postrotate и endscript будут выполнены как sh скрипт после архивирования log-файла.
}

Ну и под конец  некоторые опции которые могут быть интересны :

dateext  #К имени файлов журналов добавляется дата (%Y%m%d), вместо номера.

size [размер] #Производить ротацию если log-файл превысил указанный размер (байт, Кбайт, Мбайт).

prerotate [команды] endscript #Строки, находящиеся между postrotate и endscript будут выполнены как sh скрипт до начала архивирования log-файла.

olddir directory #Перемещать архивные файлы в указанную директорию.

noolddir #Отключает olddir.