URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 12401
[ Назад ]

Исходное сообщение
"OpenNews: Ротация логов во FreeBSD"

Отправлено opennews , 10-Окт-05 13:04 
Русский перевод статьи о ротации журналов (лог-файлов) используя стандартный механизм FreeBSD -- newsyslog.

URL: http://old.softerra.ru/freeos/16169/page1.html
Новость: http://www.opennet.me/opennews/art.shtml?num=1036


Содержание

Сообщения в этом обсуждении
"Ротация логов во FreeBSD"
Отправлено Paraman , 10-Окт-05 13:04 
Люди знающие. Расскажите мне плиз, а как newsyslog узнаёт о том, что демоны(апатча) остановлены и можно резать логи?

"Ротация логов во FreeBSD"
Отправлено PavelR , 10-Окт-05 16:20 
>Люди знающие. Расскажите мне плиз, а как newsyslog узнаёт о том, что
>демоны(апатча) остановлены и можно резать логи?


Насколько я понимаю механизм работы, то работает оно так:
1.newsyslog переименовывает файлы с логами (осуществляет непосредственно ротацию). При этом поскольку файл еще открыт, данные пишутся в него, хотя он уже и под другим именем.
2. производится посылка определенного сигнала определенному процессу(номер процесса берется из pid файла), после чего процесс производит переоткрытие файла (с основным именем) и пишет в него свой лог.



"Ротация логов во FreeBSD"
Отправлено Paraman , 11-Окт-05 11:18 
А разве такое возможно, чтобы логи от апатча писались в другое место (переименованный лог), а не то, что указано у него в конфиге?

"Ротация логов во FreeBSD"
Отправлено PavelR , 11-Окт-05 11:31 
>А разве такое возможно, чтобы логи от апатча писались в другое место
>(переименованный лог), а не то, что указано у него в конфиге?
>


Открывается файл, программа получает дескриптор файла. Далее она работает с дескриптором и ей всеравно какое у файла имя.

ИМХО: В сути юниксовых ФС лежит следующий принцип. Есть inode к которой могут ссылаться (hardlink) несколько имен, в т ч в разных каталогах.
Когда ты удаляешь файл, то происходит только удаление линка от имени к inode. Когда количество inode становится равно нулю - то она становится свободной.  Допустим с фтп у тебя скачивают файл, ты его удаляешь - но пользователь продолжит тянуть его, место на диске соотвественно не освободится. Произойдет это когда закроется последний файловый дескриптор, ссылающийся на этот файл.


"Ротация логов во FreeBSD"
Отправлено Paraman , 11-Окт-05 11:38 
Большое спасибо PavelR. Разжували и накормили :)