log rotation

Igor Sysoev is at rambler-co.ru
Wed Mar 30 11:04:28 MSD 2005


On Wed, 30 Mar 2005, Sergey A. Osokin wrote:

> On Wed, Mar 30, 2005 at 12:06:06AM +0400, Anton V. Yuzhaninov wrote:
>> Здравствуйте,
>>
>> Как правильно вращать логи?
>> Делаю:
>> mv nginx-error.log  nginx-error.log.0
>>
>> потом kill -USR1 `cat /var/run/nginx.pid`
>>
>> а логи продолжают писаться в nginx-error.log.0
>>
>> killall -USR1 nginx тоже не помогает.
>>
>> nginx-0.1.25
>> FreeBSD 5.3-STABLE
>
> Для ротации журналов в ОС FreeBSD предусмотрен механизм newsyslog(8).
> В /etc/newsyslog.conf добавляем вот такие (или подобные) строки:
> /var/log/nginx-access.log               644  3     *    @T00  Z /var/run/nginx.pid 30
> /var/log/nginx-error.log                644  3     *    @T00  Z /var/run/nginx.pid 30
>
> Описание указанных строк вы можете найти в newsyslog(8).

Дело не в этом. Если вариант mv/USR1 не работает, то newsyslog тоже
не поможет. Рабочие процессы продолжают работать со старым логом, если
они не смогли открыть новый. Как правило, ошибка "Permission denied".
В этом случае у пользователя, под которым работает рабочий процесс,
нет прав на чтение - r, или поиск - x (чего именно сейчас не скажу) на один
из каталогов в пути к логу. На сам лог все права есть - это обеспечивает
основной процесс.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list