Лог файлы одна из самых важных вещей в 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.