Portál AbcLinuxu, 25. dubna 2024 07:19

Pozor na locate/mlocate

6.3.2021 17:28 | Přečteno: 2379× | GNU/Linux

Dneska to bude stručné, ale zato apolitické. Příkaz locate je jeden z klasických unixových příkazů a slouží k vyhledávání souborů na disku. Je mnohem rychlejší než find, protože pracuje nad svým indexem místo toho, aby postupně procházel všechny soubory a složky na disku. Takže zadáme třeba locate wgetrc a vzápětí nám to najde /etc/wgetrc. To je skvělé, ne? Taková jednoduchá indexace a vyhledávání se někdy hodí. Ale taky nám může pěkně zavařit. A to doslova.

Nedávno mi začal vytuhávat jeden server. Nejdřív jsem si říkal, že mi to asi nějaká verběž DoSuje. Ale pak jsem zjistil, že se ten systém podělal sám od sebe. Bohužel i to se v GNU/Linuxu někdy stává. Na tom serveru mám spoustu souborů (neptejte se proč) a taky spoustu snapshotů (tím se počet souborů ještě násobí, takže jich je ve výsledku fakt hodně). Systém docela dlouho běžel, a pak se zadřel. Jednoduše proto, že došlo místo na disku. Pomocí du -sh jsem po pár krocích nalezl adresář /var/lib/mlocate/, který měl desítky GB a vyplnil veškeré volné místo, takže se většina služeb zastavila a ani se nic nemohlo logovat. Ano, měl bych monitorovat volné místo na discích... třeba Zabbixem. Píšu si do TODO.

Příkaz locate resp. balíček mlocate je ve výchozím stavu instalován a pravidelně aktualizuje svůj index. Většinou o tom ani nevíte a nijak to neškodí. Ale je to past. Na tomhle systému jsem nikdy locate nepotřeboval, indexace probíhala úplně zbytečně, což vedlo k výkonnostním problémům a nakonec k zadření serveru a výpadku služby. Pokud tedy locate vyloženě nepotřebujete, tak doporučuji preventivně udělat:

apt remove mlocate

Případně můžete vytvořit nějaký menší oddíl a připojit ho do /var/lib/mlocate/. Pokud tam pak dojde místo, tak se zastaví jen indexace a nepožere vám to všechno volné místo, které potřebujete pro mnohem užitečnější služby a logy.

       

Hodnocení: 100 %

        špatnédobré        

Anketa

Máte na serverech locate?
 (54 %)
 (12 %)
 (27 %)
 (8 %)
Celkem 52 hlasů

Anketa

Máte na desktopech / pracovních stanicích locate?
 (61 %)
 (10 %)
 (22 %)
 (8 %)
Celkem 51 hlasů

Anketa

Jak hledáte soubory?
 (74 %)
 (72 %)
 (52 %)
 (14 %)
 (2 %)
Celkem 58 hlasů

Anketa

Monitorujete (automatizovaně) volné místo na discích?
 (10 %)
 (19 %)
 (15 %)
 (6 %)
 (44 %)
 (6 %)
Celkem 52 hlasů

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

6.3.2021 18:07 ehmmm
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Odpovědět | Sbalit | Link | Blokovat | Admin
Co to je za system/distribuci, ze ma automaticky nainstalovany locate?

To s tim mistem na disku, jsem uz taky zazil. Ale u nas za to mohla databaze.
6.3.2021 18:10 Seržant | blog: Seržantův zápisník
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Tohle bylo Ubuntu.
Bystroushaak avatar 6.3.2021 19:25 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Co to bylo za verzi? Teď jsem koukal na svoje ubuntu servery a vůbec to tam nemám nainstalované.
6.3.2021 21:14 Seržant | blog: Seržantův zápisník
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Ubuntu 18.04.5 LTS. Určitě jsem to tam neinstaloval explicitně. Možná se to tam natáhlo jako závislost nějakého balíčku, ale spíš mám pocit, že to tam bylo už od začátku (i v serverové instalaci Ubuntu).
6.3.2021 21:21 Seržant | blog: Seržantův zápisník
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
P.S. Při odinstalaci to s sebou nevzalo žádný další balíček, takže to zjevně vyžadovaná závislost nebyla.
7.3.2021 12:58 m.
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
A instalujes baliky z kategorie suggested?
Jendа avatar 6.3.2021 19:46 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Odpovědět | Sbalit | Link | Blokovat | Admin
Pomocí du -sh jsem po pár krocích nalezl
ncdu
Případně můžete vytvořit nějaký menší oddíl a připojit ho do /var/lib/mlocate/.
Správný způsob je v /etc/updatedb.conf nastavit adresáře, které se nemají indexovat - adresáře s velkým množstvím souborů, snapshoty…
Já to s tou denacifikací Slovenska myslel vážně.
6.3.2021 19:59 kvr
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
+1 . Záleží, co to bylo za soubory. U snapshot, mails a jiných private souborů apod bych čekal, že hlavně nebudou přístupné, mlocate by se k nim přirozeně neměl vůbec dostat. Ale to je v článku utajeno.

locate je docela užitečný na nalezení knihoven, programů, konfigurací apod, takže pro mě je to jedna z věcí, kterou naopak rychle instaluju, pokud chybí.
otasomil avatar 6.3.2021 20:31 otasomil | skóre: 39 | blog: puppylinux
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Hlavne locate najde vse okamzite a to i v celem /. Vetsinou pouzivam s ignoraci velikosti znaku:
locate -i nejakynazev
K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý
Jendа avatar 6.3.2021 20:42 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Moje updatedb na Debianu běží pod rootem. (a mlocate je setuid, čte databázi čitelnou pouze pod rootem a informace z ní aktivně filtruje, pokud ho zavolá obyčejný uživatel)
6.3.2021 21:20 Seržant | blog: Seržantův zápisník
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
U snapshot, mails a jiných private souborů apod bych čekal, že hlavně nebudou přístupné, mlocate by se k nim přirozeně neměl vůbec dostat. Ale to je v článku utajeno.
Update indexu běží pod rootem a hledání pak vlastně taky, protože ta binárka má SUID bit. Přijde mi to navíc jako zbytečné bezpečnostní riziko (jen kvůli hledání, které stejně většinou nepoužívám).
6.3.2021 21:17 Seržant | blog: Seržantův zápisník
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
ncdu
To si při plném disku těžko nainstaluji. Ten systém byl sotva použitelný, nefungovalo ani napovídání v Bashi :-D
Správný způsob je v /etc/updatedb.conf nastavit adresáře, které se nemají indexovat - adresáře s velkým množstvím souborů, snapshoty…
Dík, tohle je dobrá připomínka. Hledal jsem konfigurák s názvem locate nebo mlocate, což tam nebylo a neměl jsem chuť pátrat dál, tak jsem ten balíček prostě odinstaloval, protože ho stejně nepoužívám.
k3dAR avatar 7.3.2021 11:38 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
tak pro priste ;-) ja ncdu instaluju na kazdem desktopu i serveru jako jeden z prvnich balicku (spolecne s ssh-server, mc, byobu, atd) a na serveru zaroven vzdy upravuju /etc/updatedb.conf, resp. i na desktopu tam davam vyjimku na /mnt ;-) ale ano, delam to par let od doby co mi doslo misto ve /var ;-)
porad nemam telo, ale uz mam hlavu... nobody
otasomil avatar 6.3.2021 20:11 otasomil | skóre: 39 | blog: puppylinux
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Odpovědět | Sbalit | Link | Blokovat | Admin
Obvykle hledam pomoci aliasu v .bashrc:
alias najdi="find | grep -i"
Orientacne vzdy vim kde hledat tak i toto je rychly.
S locate jsem nemel zadne problemy ac jej v OS mam.
Prehled o zabranem miste kde lezi nejvetsi balvan nechavam na tomto:
du -hc --max-depth=3 | sort -rh | head -20
K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý
Jendа avatar 6.3.2021 20:43 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
du -hc --max-depth=3 | sort -rh | head -20
ncdu
k3dAR avatar 7.3.2021 11:42 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
pripadne "ncdu -x" aby "neprolezl" do dalsich filesystemu ;-)
porad nemam telo, ale uz mam hlavu... nobody
skunkOS avatar 6.3.2021 20:42 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Odpovědět | Sbalit | Link | Blokovat | Admin
"Příkaz locate resp. balíček mlocate je ve výchozím stavu instalován a pravidelně aktualizuje svůj index" - na seriozních distribucích určitě nainstalován by default není, případně je tam nějaká sane konfigurace.
http://martinrotter.github.io
AsciiWolf avatar 7.3.2021 00:36 AsciiWolf | skóre: 40 | blog: Blog
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Na Fedoře i Mintu mlocate, pokud se nemýlím, by-default je. Tuším, že i na Debianu (včetně standardní instalace bez desktop-related věcí).
Max avatar 6.3.2021 21:09 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Odpovědět | Sbalit | Link | Blokovat | Admin
Buď nehledám, páč vím, nebo hledám pomocí find. Locate je dobrý, ale musí se ta db udržovat.
Zdar Max
Měl jsem sen ... :(
6.3.2021 21:18 Seržant | blog: Seržantův zápisník
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
V Ubuntu se udržuje sama, pravidelně cronem.
Max avatar 6.3.2021 22:16 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
To u většiny OS, ale nebývá zahrnuto vše + se to spouští v nějakých intervalech. Pokud má člověk rotačáky a hodně data, tak je to i slyšet, kdy se ten cron spustil :)
Zdar Max
Měl jsem sen ... :(
6.3.2021 21:22 zito | blog: zito
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Odpovědět | Sbalit | Link | Blokovat | Admin
Před pár týdny jsem přešel na plocate. Na noťasu jedu unstable. V dalších verzích Debianu nahradí mlocate...

k3dAR avatar 7.3.2021 11:47 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
BTW: v pripravovanem Xubuntu 21.04:
mlocate has been replaced with plocate, which should result in even faster lookups with Catfish.
porad nemam telo, ale uz mam hlavu... nobody
6.3.2021 22:59 marbu | skóre: 31 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Odpovědět | Sbalit | Link | Blokovat | Admin
Locate není od Debianu 10 v základní instalaci, ale nedávno se řešilo, zda se tam má locate vrátit s plocate implementací od Debianu 12.
There is no point in being so cool in a cold world.
11.3.2021 03:49 Lenka
Rozbalit Rozbalit vše Re: Pozor na locate/mlocate
Odpovědět | Sbalit | Link | Blokovat | Admin
Vážení, většinu osobních souborů pokud je nepotřebuju mít po většinu času na systemovem disku přesouvám na disk externí, nejnovější mám 5G s R100M/s, k čemu mi takový locate bude kdzž budu chtít najít soubor hned, než by proběhla indexace najdu to dřív třeba kfindem, pro mě rychlejší než find. A to co mi zbyde v /home tak o tom vím, to indexovat nepotřebuju. Kde indexaci naopak považuju za užitečnou je /etc a /usr/share, ano indexace byla určena pro osobní soubory.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.