Görünüşe göre, locate.updatedb dizinini, bağlı ağ dahil diğer dosya sistemlerini indekslemek mümkün.
Yakalama, dosya sisteminin kökünün (ve indekslenmesini istediğiniz içeriğe kadar olan ağacın) kullanıcı / grup "hiç kimse" tarafından okunabilmesi gerektiğidir.
/Etc/locate.rc ile doğru yoldaydınız
Bundan sonra /usr/libexec/locate.updatedb'nin indeksi oluşturmak için sadece find kullandığını öğrendim.
/Etc/locate.rc FILESYSTEMS içindeki girdiler arasında dolaşır (en azından 10.6'da, bu ayarlanmamışsa, sadece hfs olur).
find's man sayfası, makinenizde neyin geçerli olduğunu bulmak için "sysctl vfs" kullanılmasını önerir. Benim durumumda:
sysctl vfs|grep mounted
vfs.nfs has 1 mounted instance
vfs.hfs has 3 mounted instances
vfs.autofs has 3 mounted instances
vfs.afpfs has 4 mounted instances
Bunu doğrulamak için bazı hızlı testler:
prowler:~%% mount |grep Volumes/keen
afp_1I6KyU4igzg00Q0vsj4E2G0H-1.2f0004fb on /Volumes/keen (afpfs, nodev, nosuid, mounted by keen)
prowler:~%% touch /Volumes/keen/test-afpfs
prowler:~%% find /Volumes/keen/ -name test-afpfs -fstype afpfs
prowler:~%% find /Volumes/keen/test-afpfs -name test-afpfs -fstype afpfs
/Volumes/keen/test-afpfs
prowler:~%% find /Volumes/keen/test-afpfs -name test-afpfs -fstype hfs
prowler:~%%
10.6 için, en azından afpfs, AFP'ye bağlı bir dosya sistemi için doğrudur.
Şimdi afpfs'in başarısızlığına.
OSX (10.6), AFP birimini (bir giriş öğesiyle veya Bulucu -> Git -> sunucuya bağlan - AFP için geleneksel OSX mekanizmalarıyla monte edilir) monte ettiğinde, bunu yalnızca kullanıcı tarafından okunabilir şekilde bağlar:
prowler:/Volumes/keen%% ls -ld /Volumes/keen
drwx------ 6 keen keen 264 Dec 13 12:45 /Volumes/keen/
ve bu el ile düzeltmeye çalışmak başarısız olur:
prowler:/Volumes/keen%% sudo chmod a+rx /Volumes/keen
prowler:/Volumes/keen%% ls -ld /Volumes/keen
drwx------ 6 keen keen 264 Dec 13 12:52 /Volumes/keen/
Henüz bir geçici çözüm bulamadım (autofs denemedim, çünkü bu yöntem her OSX sürümünde bozulma eğiliminde ...).
takılan hfs (ve muhtemelen hfs +, vb.) birimlerinin bu sorunu yoktur ve Disk Yardımcı Programı -> NFS Bağlayıcıları (10.6) aracılığıyla bağlanan NFS birimleri de yoktur.
prowler:~%% mount |grep nfs
murf:/backups on /Users/keen/backups (nfs, nodev, nosuid, automounted, nobrowse)
prowler:~%% ls -ld /Users/keen/backups
drwxrwxrwx 33 root wheel 2048 Dec 13 03:05 /Users/keen/backups/
Bunu sadece afp mountun indeksleme dizinini bulmaya çalışırken buldum:
prowler:/Volumes/keen%% grep FILESYSTE /etc/locate.rc
FILESYSTEMS="afpfs"
prowler:/Volumes/keen%% sudo /usr/libexec/locate.updatedbshell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
find: .: Permission denied
Afp mount dışında $ PWD ile çalıştırmak bu hatayı almadı:
prowler:~%% sudo /usr/libexec/locate.updatedb
prowler:~%%
ama aynı zamanda herhangi bir sonuç yoktu:
prowler:~%% locate test-afpfs
prowler:~%%
Yani şimdiye kadar bulduğum kısa cevap - EVET! OSX'te ağ birimlerini endekslemek için yerini bulabilirsiniz. NO, bir afp ağ hacmini endeksleyemezsiniz.
mdfind
Bunun yerine (Ie Spotlight) kullanmayı düşündünüz mü ?