access log apache
Dan Lukes
dan at obluda.cz
Thu Mar 2 09:48:53 CET 2006
Divacky Roman wrote:
> pokazde kdyz se mi rotatne access log apache (tj. jednou mesicne) tak mi
> prestane logovat, musim toho apache restartovat. driv (kde driv = pred par
> mesici?) to fungovalo normalne... vite nekdo cim to muze byt? resp. jeste lepe
> jak to spravit?
Odpustim si jedovatou poznamky o tom, ze bys o systemu, ve kterem se
snazis mluvit do kodu jadra mel neco malo vedet ... ;-(
UFS, to je souborovy system, ktery pouzivas, ma do jist emiry
tristupnovou architekturu - navrchu jsou adresare, ktere obsahuji "jmeno
souboru". Z adresare vede ukazatel do jine tabulky - ktera obsahuje
dalsi udaje o souboru (napr. velikost, prava a pod.) a polozce v teto
tabulce se rika "inode". A teprve z ni vede odkaz na bloky, ve kterych
je obsah souboru.
Dusledkem je, ze jeden soubor ma jeden inode, ale muze mit prakticky
libovolne mnozstvi rovnocenych jmen v libovolnem mnozstvi adresaru - a
vsechny ty adresarove zaznamy ukazuji na tentyz inode.
Adresarove zaznamy jsou tedy jen reference odkazujici na inode a teprve
to odkazuje obsah souboru.
Ve skutecnosti pak v systemu vubec nemuzete smazat soubor - jedine, co
je vam jako uzivateli dovoleno (a to plati i pro superuzivatele) je
smazat konkretni jmeno souboru. System posoudi, jestli je to posledni
zpusob jak se na dany obsah odkazat - a pokud ano, pak skutecne smaze i
soubor, v opacnem pripade neudela nic.
Jmeno souboru ale neni jedinny zpusob, jak referova inode - kdyz v
programu soubor otevres, dostanes handle - a to je z hlediska systemu
dalsi reference na dany inode.
Soubor tedy muze existovat i tehdy, pokud zlikvidujes jeho posledni
adresarove jmeno - pokud existuje proram, ktery ma soubor otevreny a
ktery ho stale referuje.
Tim, ze soubor (respektive jeho jmeno) smazu tim program k souboru
samemu pristup neztraci - a kdyz nahodou v vyrobim uplne jiny soubor,
ktery nahodou pouziva stejne jmeno jako ten predchozi, tak to stale je
jiny soubor a na pritupu programu k puvodnimu souboru se nic nemeni.
Nejneprijemneji se s timto jevem setkate, kdyz se vam preplni disk, vy
najdete ten LOG soubor, jehoz velikost prekrocila vsechny prijatelne
meze, smazete ho (ted uz vime, ze smazete jen nazev) - a misto se
neuvolni. To proto, ze program, ktery do nej pise ho ma stale otevreny,
tedy existuje na soubor platna reference a tedy nejsou dany podminky pro
smazani souboru.
====================
Tolik informace, ktere ja studentum rikam na prvnim cviceni "Zaklady
UNIXu" (a verim, ze by mohla byt nova a zajimava i pro jine lidi tady -
jinak bych to sem nepsal a odpovedel primo tobe) a nyni k tve otazce na
kterou uz s uvedenymi informacemi bude pomerne snadne hledat odpoved.
S ohledem ma to, jak se UFS chova, nelze "orotovat" soubor bez
spoluprace daneho programu nebo bez jeho restartu. Apache v tomto ohledu
nikdy nesplupracovat a vzdy byl treba ten restart.
To znamena, ze v dobe, kdy ti to fungovalo tak pouzita metoda mela
schopnost Apache restartovat. Pokud to v soucasne dobe nefunguje, zrejme
ji z nejakeho duvodu ztratila.
Takze pri hledani priciny je treba se vydat timto smerem.
Dan
More information about the Users-l
mailing list