#apache
/var/log/httpd-access.log 666 7 * @T00 BZ
/var/log/httpd-error.log 666 7 * @T00 BZ
/var/log/apache/*.ru 666 28 * @T00 GJ
/var/log/apache/*.error 666 28 * @T00 GJ /var/run/httpd.pid 30
-rw-rw-rw- 1 root www 66 Mar 20 00:00 domain.ru
-rw-rw-rw- 1 root www 489032 Mar 20 11:56 domain.ru-error
-rw-rw-rw- 1 root www 44 Mar 18 00:00 domain.ru-error.0.gz
-rw-rw-rw- 1 root www 44 Mar 17 00:00 domain.ru-error.1.gz
-rw-rw-rw- 1 root www 44 Mar 16 00:00 domain.ru-error.2.gz
-rw-rw-rw- 1 root www 44 Mar 15 00:00 domain.ru-error.3.gz
-rw-rw-rw- 1 root www 4256 Mar 14 23:56 domain.ru-error.4.gz
-rw-rw-rw- 1 root www 44 Mar 13 00:00 domain.ru-error.5.gz
-rw-rw-rw- 1 root www 44 Mar 12 00:00 domain.ru-error.6.gz
-rw-rw-rw- 1 root www 4039781 Mar 20 00:00 domain.ru.0.bz2
-rw-rw-rw- 1 root www 66 Mar 20 00:00 test.domain.ru
-rw-rw-rw- 1 root www 120277 Mar 20 00:00 test.domain.ru.0.bz2
Если перезагружаю apache То опять начинает писать, но после ротации перестает
Содержимое логротейта для Апача - в студию. Там суть в том, что должна буть строчки вида:
postrotate
/etc/init.d/apache2 reload
endscript
> Содержимое логротейта для Апача - в студию. Там суть в том, что
> должна буть строчки вида:
> postrotate
> /etc/init.d/apache2 reload
> endscriptА где это должно быть написано в httpd.conf?
> А где это должно быть написано в httpd.conf?Хочется ответить в рифму. Но скажу проще - как все запущено. ПРИЧЕМ тут httpd.conf? КАКОЙ софт отвечает за ротацию логов? Думаем, думаем....
>> Содержимое логротейта для Апача - в студию. Там суть в том, что
>> должна буть строчки вида:
>> postrotate
>> /etc/init.d/apache2 reload
>> endscript
> А где это должно быть написано в httpd.conf?Это вы про logrotate имеете ввиду, но я хотел обойтись стандартными средствами newsyslog
я же написал это в название темы
>>> Содержимое логротейта для Апача - в студию. Там суть в том, что
>>> должна буть строчки вида:
>>> postrotate
>>> /etc/init.d/apache2 reload
>>> endscript
>> А где это должно быть написано в httpd.conf?
> Это вы про logrotate имеете ввиду, но я хотел обойтись стандартными средствами
> newsyslog
> я же написал это в название темы/web/httpd-access.log 644 7 * @T00 JB /var/run/httpd.pid
Привет,> Если перезагружаю apache То опять начинает писать, но после ротации перестает
Конечно:
1. Стартует Apache. Он открывает лог файл и все время пишет в него через iffjlejijlwzyrx файловый дескриптор.
2. Логротатор берет лог файл, меняет его имя, возможно компрессирует и создает новый пустой лог файл.
3. Apache по-прежнему держит дескриптор на старый лог файл. Поскольку самого файла нет, записи идут, образно говаря, в /dev/null.
Мораль: после ротации логов силами внешнего приложения всегда нужно сообщить об этом процессу, который пишет логи. Часто это делается через сигнал SIGHUP, ну или просто перезапуском.
WWell,
>[оверквотинг удален]
> 1. Стартует Apache. Он открывает лог файл и все время пишет в
> него через iffjlejijlwzyrx файловый дескриптор.
> 2. Логротатор берет лог файл, меняет его имя, возможно компрессирует и создает
> новый пустой лог файл.
> 3. Apache по-прежнему держит дескриптор на старый лог файл. Поскольку самого файла
> нет, записи идут, образно говаря, в /dev/null.
> Мораль: после ротации логов силами внешнего приложения всегда нужно сообщить об этом
> процессу, который пишет логи. Часто это делается через сигнал SIGHUP, ну
> или просто перезапуском.
> WWell,А разве эта строчка не уведомляет apache об этом
/var/log/apache/*.error 666 28 * @T00 GJ /var/run/httpd.pid 30
> А разве эта строчка не уведомляет apache об этом
> /var/log/apache/*.error 666 28 *
> @T00 GJ
> /var/run/httpd.pid 30а посмотреть в доках, по какому сигналу apache делает reload config и потом в инклюдах, что за сигнал 30 слабо?
>> А разве эта строчка не уведомляет apache об этом
>> /var/log/apache/*.error 666 28 *
>> @T00 GJ
>> /var/run/httpd.pid 30
> а посмотреть в доках, по какому сигналу apache делает reload config и
> потом в инклюдах, что за сигнал 30 слабо?Да разобрался так работает
/web/httpd-access.log 644 7 * @T00 JB /var/run/httpd.pid
Только /var/run/httpd.pid нужно на каждую строчку добавить или после ротации логов указать в последней строке
>[оверквотинг удален]
>>> @T00 GJ
>>> /var/run/httpd.pid 30
>> а посмотреть в доках, по какому сигналу apache делает reload config и
>> потом в инклюдах, что за сигнал 30 слабо?
> Да разобрался так работает
> /web/httpd-access.log 644 7
> * @T00
> JB /var/run/httpd.pid
> Только /var/run/httpd.pid нужно на каждую строчку добавить или после ротации логов указать
> в последней строкев каждую строку добавлять не нужно - только в последнюю, которая к apache относится - релоад конфига после ротации КАЖДОГО лога (которых при желании/надобности просто масса) это не красиво.