Mám síťový disk, komunikující přes cifs a mountovaný do /media. Chtěl jsem, aby byl jeho obsah indexovaný přes updatedb a mohl jsem ho prohledávat pomocí locate (pokud neznáte, je to velmi užitečná utilita na prohledání celého disku, v cestě k souboru hledá zadaný řetězec).
Našel jsem konfiguraci v /etc/updatedb.conf a upravil proměnné
Pak jsem ještě spustil explicitně (obvykle se spustí z cronu automaticky v určený čas) aktualizaci updatedb a vyzkoušel locate. Perfektní, zabralo to. Bohužel jen na chvíli, druhý den už byla databáze zase prázdná a locate nic nenacházel.
Podezíral jsem opět roztáčení síťového disku, myslel jsem, že updatedb nepočká a tudíž se tváří, jako by disk připojený nebyl. Ale protože už mi nápady došly, zeptal jsem se v diskuzním fóru uživatelů Fedory.
Odpověděl mi Covex, že updatedb je spouštěný cronem ze scriptu /etc/cron.daily/mlocate.cron a že v něm se přidávají některé souborové systémy pomocí parametru -f a že by to mohlo být tím.
#!/bin/sh
nodevs=$(< /proc/filesystems awk '$1 == "nodev" && $2 != "rootfs" { print $2 }')
renice +19 -p $$ >/dev/null 2>&1
ionice -c2 -n7 -p $$ >/dev/null 2>&1
/usr/bin/updatedb -f "$nodevs"
A také bylo. Parametr -f znamená „add prunefs“ čili přidání ignorovaných souborových systémů a mezi nimi je i nfs a cifs. Smazal jsem -f "$nodevs" a o smyslu konfiguračního souboru, který se nikdy nepoužije, raději nepřemýšlím.
Hodnocení hvězdičkami používá jako prevenci
opakovaného kliknutí anonymní cookie.
Pokud s tím nesouhlasíte, neklikejte.
Další podrobnosti k cookies zde.