ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



Здравствуйте, Дугин!

Friday, April 7, 2006, 12:47:52 PM, you 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`
>>>>>>>
>>>>>>> Было бы имхо и удобно и практично.

ДС> структура такая
ДС> /scsi/$user/$domain/%YY%mm%dd-error.log
ДС> /scsi/$user/$domain/%YY%mm%dd-access.log
ДС> При этом кол-во доменов и юзеров в системе меняется в течении дня, то
ДС> есть новый домены добаляются и удаляются так же как и юзера.

ДС> И мне проще было бы в данном случае просто перегружать nginx так чтобы
ДС> он создавал имя файла вида 20060707-access.log  - тут даже ни какой
ДС> ротации нет просто хочется чтобы можно было в имя лога переменную
ДС> добавить! По любому в течении суток nginx перегружается каждый раз
ДС> когда появляется/удалется новый домен или юзер. И каждый раз делать
ДС> запросы к базе MySQL (там все хранится) чтобы менять параметры
ДС> logrotate вместо того чтобы перегрузить nginx усложняет задачу
ДС> значительно.

Для того, чтобы лог был доступен по тому же имени, можно делать
symlink, а во время ротации алгоритм такой:
удалить симлинк, переименовать файл, ровно в 0.00 переоткрыть файл,
содать symlink снова.

Для нахождения всех файлов можно использовать
find /scsi -name "nginx-access.log" -depth 3 -print

Важно только если find выполняется достаточно долго, запускать скрипт
и переименовавать чуть заранее, а переоткрывать файлы ровно в 0.00, не допуская 
в этот
промежуток появления новых лог-файлов.

Команда /bin/date '+%Y%m%d' поможет переименовывать файлы.

ДС> При этом ведь никто не просит чтобы сам nginx ротарил логи, я сейчас
ДС> сделал временное решение мне приходится генерить в полночь весь
ДС> конфиг nginx, а потом все равно перезапускать nginx -1 pid
ДС> И старый конфиг nginx от нового отличается только тем что имtена логов
ДС> изменилось на новую дату и все!  И ведь получается что nginx в данном
ДС> случае не ротарит, поэтому я и прошу добавить переменые типа %YY %mm
ДС> %dd, имхо это не нагрузит nginx, а кому-то (в частности мне) облегчит
ДС> жизнь.


-- 
С уважением, Вячеслав Кокорин
Системный администратор хостинга PeterHost.Ru
Тел: (812) 34-777-43
     (495) 540-56-33
http://www.PeterHost.Ru




 




Copyright © Lexa Software, 1996-2009.