Nginx, Logrotate & Webalizer increment

Vladislav tvword на gmail.com
Вс Янв 31 14:22:08 MSK 2010


Здесь http://www.lexa.ru/nginx-ru/msg13044.html нашел описание конфига 
Nginx для Logrotate.

Рассматривается конфигурация
> /var/log/nginx/*log {
>     daily
>     rotate 9
>     missingok
>     notifempty
>     compress
>     sharedscripts
>     postrotate
>         [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
>     endscript
> }
>
> Даны пояснения:
>
> Лог-файлы нужно переименовать, а затем послать сигнал USR1 главному 
> процессу.
> Он откроет заново все текущие открытые файлы и назначит им в качестве 
> владельца
> непривилегированного пользователя, под которым работают рабочие процессы.
> После успешного открытия главный процесс закрывает все открытые файлы
> и посылает сообщение о переоткрытии файлов рабочим процессам.
> Они также открывают новые файлы и сразу же закрывают старые.
> В результате старые файлы практически сразу же готовы
> для дальнейшей обработки, например, их можно сжимать.
Вопрос. Немного не понятно, кто в этом случае очищает log-файл, например 
access.log? Nginx или Logrotate?

Еще задача. Перед ротация логов, по ним нужно пройтись webalizer'ом, 
причем с инкрементной обработкой логов.
У меня получился такой конф.файл -
> /var/log/ng/access.log {
>         rotate 10
>         size=10M
>         missingok
>         notifempty    # не обрабатывать пустые файлы
>         compress
>         nodelaycompress
>         nocreate
>         sharedscripts # prerotate/postrotate выполняются только 1 раз
>         prerotate
>                 /usr/bin/webalizer     
>         endscript
>         postrotate
>         [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
>         endscript
> }
Стоит параметр nocreate. Т.е не создавать новый файл access.log?
Создаст ли его nginx через команду kill -USR1 `cat /var/run/nginx.pid ?






Подробная информация о списке рассылки nginx-ru