GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie erhalte ich die Liste der Clients, die mit einem NFS-Server in einem lokalen Netzwerk verbunden sind?

Sie können verbundene NFS-Clients finden, indem Sie Folgendes auf dem NFS-Server ausführen:

netstat | grep :nfs

NFS funktioniert sowohl über UDP als auch über TCP, nur offene TCP-Verbindungen werden in netstat angezeigt oder ss . Außerdem hatte es als verteiltes Dateisystem (in der Vergangenheit) seinen gerechten Anteil an Problemen (Status, Cache, Sperren, Benachrichtigungen, Sicherheit – einige davon haben Lösungen durch zusätzliche RPC-Funktionen, z. B. rpc.statd). ).

Auf einem Linux-NFS-Server (siehe man rpc.mountd ) werden die Mount-/Unmount-Anforderungen des Clients in /var/lib/nfs/rmtab aufgezeichnet , genau wie /etc/mtab , also sollte die Antwort lauten:

cat /var/lib/nfs/rmtab

Wenn es leer ist, haben Sie entweder ein Problem mit rpc.mountd (Sie sollten also die laufenden RPC-Dienste überprüfen), oder alle Clients sind NFSv4, die diese Funktion nicht verwenden.

Auf Versionen habe ich rmtab überprüft wird dargestellt als:

10.1.2.0/24:/path/to/export1:0x000...flags
10.1.2.10:/path/to/export1:0x0000...flags
10.1.2.22:/path/to/export1:0x0000...flags
10.1.2.0/24:/path/to/export2:0x000...flags
10.1.2.22:/path/to/export2:0x0000...flags
10.1.2.99:/path/to/export2:0x0000...flags

d.h. jeder Einhängepunkt wird aufgelistet, gefolgt von den Clients, die ihn verwenden.

Beachten Sie den Vorbehalt in der Manpage:

Diese Datei ist jedoch hauptsächlich dekorativ. Erstens kann der Client das Dateihandle auch nach dem Aufrufen der UMOUNT-Prozedur von rpc.mountd weiter verwenden. Und zweitens, wenn ein Client neu startet, ohne rpc.mountd zu benachrichtigen, verbleibt ein veralteter Eintrag in rmtab.

Die /proc/fs/nfsd/client Ansatz (@Vsevolod Gromovs Antwort) in neueren Kerneln sollte in dieser Hinsicht besser sein, aber da er nur NFSv4-Clients unterstützt, die sich besser verhalten sollten.


Seit Linux-Kernel 5.3 können Sie ein spezielles Verzeichnis namens /proc/fs/nfsd/clients verwenden .

Sie können die Kernel-Version mit uname -r überprüfen Befehl


Seit netstat steht nicht immer zur Verfügung, da es durch ss ersetzt werden soll Sie könnten auch

verwenden

ss -a|grep nfs


Linux
  1. Wie bekomme ich sicher die Version von Ksh?

  2. Wie bekomme ich die neueste Version von Winetricks auf Ubuntu?

  3. Wie erkennt man den physikalischen Verbindungszustand eines Netzwerkkabels/-steckers?

  4. Wie bekomme ich eine Liste von Verzeichnissen in einer ZIP-Datei?

  5. Wie erhalte ich die Liste der abhängigen untergeordneten Bilder in Docker?

So erhalten Sie die Größe eines Verzeichnisses in Linux

Verwendung des Befehls showmount zum Auflisten von Freigaben auf einem NFS-Server

So ermitteln Sie den Verbindungsstatus eines Netzwerkkabels in Linux

So listen Sie die Mitglieder einer Gruppe in Linux auf

So erhalten Sie die beste Leistung vom Nginx-Server

So erhalten Sie MAC-Adressen von Geräten, die sich nicht im Netzwerk befinden