logrotate w / apache2 log файлы


0

У меня есть настройки Apache для создания новых файлов журнала каждый день:

CustomLog "|/usr/sbin/rotatelogs -f /var/log/apache2/access.log.%Y-%m-%d-%H_%M 86400" combined

Затем я пытаюсь использовать logrotate, чтобы сжать эти файлы:

/var/log/apache2/access.log.* {
    compress
    create 0644 root root
    daily
    delaycompress
    missingok
    maxage 7
}

Что происходит, что я получаю кучу файлов, которые выглядят так:

-rw-r--r-- 1 root root        20 2011-11-26 06:49 access.log.2011-11-21-00_00.1.1.3.gz
-rw-r--r-- 1 root root        33 2011-11-26 06:49 access.log.2011-11-21-00_00.2.gz.3.gz
-rw-r--r-- 1 root root        20 2011-11-26 06:49 access.log.2011-11-21-00_00.3.gz.3.gz
-rw-r--r-- 1 root root        20 2011-11-26 06:49 access.log.2011-11-22-00_00.1.1.3.gz
-rw-r--r-- 1 root root        33 2011-11-26 06:49 access.log.2011-11-22-00_00.2.gz.3.gz
-rw-r--r-- 1 root root        20 2011-11-26 06:49 access.log.2011-11-22-00_00.3.gz.3.gz
-rw-r--r-- 1 root root        20 2011-11-26 06:49 access.log.2011-11-23-00_00.1.3.gz
-rw-r--r-- 1 root root        33 2011-11-26 06:49 access.log.2011-11-23-00_00.2.gz.3.gz
-rw-r--r-- 1 root root  44590255 2011-11-25 18:59 access.log.2011-11-25-00_00.4.gz
-rw-r--r-- 1 root root        20 2011-11-25 06:42 access.log.2011-11-23-00_00.1.4.gz
-rw-r--r-- 1 root root        20 2011-11-25 06:42 access.log.2011-11-24-00_00.4.gz
-rw-r--r-- 1 root root        20 2011-11-25 06:42 access.log.2011-11-21-00_00.1.4.gz
-rw-r--r-- 1 root root        33 2011-11-25 06:42 access.log.2011-11-21-00_00.2.gz.4.gz
-rw-r--r-- 1 root root        20 2011-11-25 06:42 access.log.2011-11-22-00_00.1.4.gz
-rw-r--r-- 1 root root        33 2011-11-25 06:42 access.log.2011-11-22-00_00.2.gz.4.gz

Я хочу, чтобы каждый день создавался новый файл, а файл предыдущих дней - gzip'd. Как мне настроить мой logrotate для этого?

Ответы:


1

Эта строка:

/var/log/apache2/access.log.* 

соответствует всем файлам в каталоге / var / log / apache2, поэтому включает в себя все существующие файлы gzip. В основном это сжатие уже сжатых файлов.

Измените это на

/var/log/apache2/access.log

чтобы убедиться, что он действует только на файл access.log. Кроме этого, настройки правильные.


Единственная проблема с этим заключается в том, что я добавляю отметку времени / даты к имени файла в строке CustomLog. Поэтому я думаю, что лучше изменить строку CustomLog для использования доступа. & Lt; datetime_stamp & gt; .log было бы лучше, чтобы я мог использовать /access.*.log
rforte

Ааа, да я вижу Да, вам нужно как-то исключить файлы .gz. Изменение положения метки времени в имени файла будет самым простым способом.
Paul

пометить этот ответ более или менее правильно, так как обновление имени файла делает свое дело.
rforte
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.