Moin,
ich will ein find so aufrufen, daß mein NFS Share nicht durchsucht wird. Um das ganze generisch zu machen, kommt die Pfadangabe nicht in Frage. Da es "find / -not -fstype nfs4 -name..." nicht gibt, wollte ich eine Include-Liste machen:
find / -fstype xfs,ext2,ext3 -name...
Aber auch dann treibt sich find im NFS herum, erkennbar an den Fehlermeldungen, daß auf gewisse Files nicht zugegriffen werden kann.
Da der NFS-Share recht groß ist, ist das nachträgliche Parsen der Ergebnisse keine Option. Das ganze auf Redhat 7.
Hilmar
On 12/21/20 10:48 PM, Hilmar Preuße wrote:
ich will ein find so aufrufen, daß mein NFS Share nicht durchsucht wird. Um das ganze generisch zu machen, kommt die Pfadangabe nicht in Frage. Da es "find / -not -fstype nfs4 -name..." nicht gibt
Und warum gibt es sie nicht? Sofern das fs laut mtab mit "nfs4" eingebunden ist sollte find das ausschliessen. Wenn das nicht der komplette Aufruf ist liegt dann dann meistens an einem -o oder anderer aufhebender Verknuepfung.
, wollte ich eine Include-Liste machen:
find / -fstype xfs,ext2,ext3 -name...
fstype nimmt keine Liste. Mehrmals angeben und korrent logisch verbinden. Aber siehe oben.
Aber auch dann treibt sich find im NFS herum,
Weil es kein fs "xfs,ext2,ext3" gibt.
Andreas
On Tue Dec 22, 2020 at 12:41 AM CET, Stefan Majewsky wrote:
On Mon Dec 21, 2020 at 10:48 PM CET, Hilmar Preuße wrote:
Da es "find / -not -fstype nfs4 -name..." nicht gibt
$ find / ( ! -fstype nfs4 ) -name ...
Moin nochmal,
nach dem Abschicken fallen mir gerade noch zwei andere Sachen ein.
Erstens sollte man nicht einfach nur den Exclusion-Check machen, sondern gleich am Mountpoint den ganzen Baum wegstreichen, damit man nicht sinnlos durch Tausende Verzeichnisse durchrennt. Kann sein, dass find das selber derart optimiert, aber falls nicht:
$ find / ( -fstype nfs4 -prune ) -o ( -name ... )
Zweitens, ganz andere Strategie: Explizit die Mountpoints der gewünschten Partitionen als Startpunkte auflisten und Traversieren von Mountpoints verbieten.
$ find $(awk '$3=="ext4"||$3=="xfs"{print$2}' /proc/mounts) -xdev -name ...
Schöne Grüße Stefan
Am Montag, dem 21.12.2020 um 22:48 +0100 schrieb Hilmar Preuße:
ich will ein find so aufrufen, daß mein NFS Share nicht durchsucht wird. Um das ganze generisch zu machen, kommt die Pfadangabe nicht in Frage. Da es "find / -not -fstype nfs4 -name..." nicht gibt, wollte ich eine Include-Liste machen:
Klar gibt es das :)
find / -name [..deine Optionen] ! -fstype nfs4
Funktioniert hier problemlos. Du kannst dein NFS auch auf den fstype-Typ testen:
find /pfad/zu/nfs -maxdepth 1 -printf %F
Wenn da nfs4 ausgegeben wird, sollte "! -fstype nfs4" funktionieren. Ich würde die auschließenden Optionen an das Ende des Kommandos stellen.
HTH und Gruß, Daniel
lug-dd@mailman.schlittermann.de