Re[4]: Ротация логов

Igor Sysoev is at rambler-co.ru
Fri Apr 7 11:58:50 MSD 2006


On Fri, 7 Apr 2006, Дугин Сергей wrote:

>>>>>>> Можно ли добавить новые переменные по аналогии как в http://sysoev.ru/nginx/docs/syntax.html
>>>>>>>
>>>>>>> %yy %mm %dd %hh %mm %ss
>>>>>>>
>>>>>>> Тогда можно было бы сделать так:
>>>>>>> access_log /home/user/logs/%yy%mm%dd-access.log main;
>>>>>>>
>>>>>>> И ровно в полночь делать
>>>>>>>
>>>>>>> kill -1 `cat /usr/local/nginx/logs/nginx.pid`
>>>>>>>
>>>>>>> Было бы имхо и удобно и практично.
>>>>>
>>>>>> Нет, nginx имеет необходимый и достаточный уровень поддержки ротации логов:
>>>>>> kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
>>>>>
>>>>>> Всё остальное - работа для внешних скриптов.
>>>>>
>>>>> Не хотлось бы просто внешними скриптами переименовывать порядка
>>>>> несколько тысяч логов, проще перезапустить nginx чтобы он начал писать
>>>>> лог с новым именем.
>>>
>>>> А что такого в переименовывании тысяч логов скриптом ?
>>>> Это же машина делает - она железная. Она сделает это за прау секунд.
>>>
>>> Ну давайте начнем с того что сервер сам по сбее нагружен сильно, затем
>>> ровно в полночь и так запускается много чего, затем если учесть что не
>>> все знают Си, то например с помощью перла (или того же mv) делается
>>> все уже не пару секунд, а дольше как результат часть записей новых
>>> суток попадает в лог от прошедших суток.
>
>> Зачем знать Си или перл для того, чтобы крутить логи ? Этих крутилок
>> уже написано десяток. Основное время в переименовывании файлов уходит
>> не на перл или Си, а на системные вызовы. nginx их сделает с той же
>> скоростью и у него будет такой же лаг, как у прочих.
>
> А есть разница между переименовыванием и созданием нового файла?

Есть, переименование - rename()/open(). Создание - open().
Но nginx помимо создания нового файла ещё вызывает chown() и chmod().
В общем, разница будет гомеопатической.


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





More information about the nginx-ru mailing list