Portál AbcLinuxu, 13. května 2025 21:32
updatedb
. Nelíbí se mi princip jeho fungování, kdy musí pokaždé projít celý disk a vygenerovat databázi souborů? Nevíte o nějaké rozumné náhradě?
Moje představa je, že se změny budou zapisovat při vytvoření/zrušení souboru a změně práv, takže to asi bude chtít spolupráci jádra. Ale bylo by to rozhodně méně náročné než to, co máme dnes a navíc by byla databáze dostupná ihned.
$ locate linux/inotify.h /usr/src/linux-2.6.16-ck9/include/linux/inotify.h $Několikrát jsem si všiml, že updatedb zůstalo viset (jako proces) pokud bylo spuštěno cronem. Neni to však dnešní případ. A co když rlocated zkusím zastavit?
# /etc/init.d/rlocated stop * Service rlocated stopping * WARNING: you are stopping a boot service. [ !! ] ERROR: Module rlocate is in use [ !! ] * ERROR: rlocated failed to stop
slocate
. Protože updatedb běží pod rootem, zaindexuje všechny soubory, které locate
zobrazí. Ale tím se obchází unixová práva, protože některé soubory a adresáře prostě viditelné být nemají, proto slocate
ověřuje, zda má uživatel k danému souboru práva, aby jej mohl zobrazit.
slocate
.
rlocate
a spuštění démonu rlocated
to pracuje
$ locate asdfg $ touch asdfg $ locate asdfg /home/misak/asdfg $ rm asdfg $locate asdfg $
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.