Locate v čisté instalaci Fedory nfs disky pořád neindexuje, což možná dokážu pochopit (na druhou stranu, když už disk mountuju, proč by mě neměl zajímat jeho obsah?), ale určitě potřebuju překonfigurovat. Návod mám už z roku 2011, takže jsem upravil /etc/updatedb.conf (z PRUNEPATH odebral /media, z PRUNEFS odebral nfs) a chystal se na /etc/cron.daily/mlocate.cron.
Jenže ten už tu není! Naivně jsem zajásal, že doba pokročila a že k nakonfigurování už bude stačit jen konfigurace, explicitně pustil updatedb, zkusil najít nějaký soubor, umístění dostal – a byl spokojený. Samozřejmě jen do druhého dne, kdy byla databáze zase prázdná.
Doba sice pokročila, ale nesmysl vytrval.
Jak zjistit, kde se to spouští, když v cron to není? Nu, když už mám to locate… pomocí „locate mlocate“ jsem našel všechny soubory s tímhle slovem ve jméně a šel po vytipovaných kandidátech.
Co třeba /etc/systemd/system/timers.target.wants/mlocate-updatedb.timer?
Chyba, ten obsahuje jen nicneříkající informace.
Tak /usr/lib/systemd/system/mlocate-updatedb.timer?
Zase ne.
Další kandidát /usr/lib/systemd/system/mlocate-updatedb.service?
Tady byla první stopa, sekce [Service] obsahuje ExecStart=/usr/libexec/mlocate-run-updatedb.
Takže/usr/libexec/mlocate-run-updatedb?
Konečně!
nodevs=$(< /proc/filesystems awk '$1 == "nodev" && $2 != "rootfs" && $2 != "zfs" { print $2 }')
/usr/bin/updatedb -f "$nodevs"
Souborové systémy, které se mají ignorovat, se generují pořád. Protože i mé znalosti trochu pokročily, usoudil jsem, že -f má smysl a měl bych ho zachovat. Nejprve jsem se chtěl podívat, co to vlastně vysype. Upravil na něco spustitelného v shellu:
cat /proc/filesystems | awk '$1 == "nodev" && $2 != "rootfs" && $2 != "zfs" { print $2 }'
sysfs
ramfs
bdev
proc
cpuset
cgroup
cgroup2
tmpfs
devtmpfs
configfs
debugfs
tracefs
securityfs
sockfs
dax
bpf
pipefs
hugetlbfs
devpts
autofs
pstore
efivarfs
mqueue
selinuxfs
rpc_pipefs
nfs
nfs4
A opravdu, nfs tam pořád figuruje. Každopádně přidat jednu podmínku už bylo snadné:
nodevs=$(< /proc/filesystems awk '$1 == "nodev" && $2 != "rootfs" && $2 != "zfs" && $2 != "nfs" { print $2 }')
Sláva… Nebo ne? Za pár dní byl index zase v tahu… tak snad přidat i nfs4?
nodevs=$(< /proc/filesystems awk '$1 == "nodev" && $2 != "rootfs" && $2 != "zfs" && $2 != "nfs" && $2 != "nfs4" { print $2 }')
Tohle už konečně zabralo.
(Jsem zvědavý, jestli někdy bude konfigurační soubor sloužit svému účelu...)
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.