Wir haben einen Einhängepunkt, der von vielen Linux-Hosts gemeinsam genutzt wird. Wir müssen herausfinden, welche Konten mit welchen Konten zu welcher Zeit Dateien lesen/schreiben. Wie gehen wir dabei vor?
Antwort1
Wenn Sie nfswatch
es installiert haben, können Sie damit die Hosts ermitteln, die auf den NFS-Server zugreifen. Sie müssen den -clients
Switch verwenden.
Beispiel
$ sudo nfswatch -clients
mulder.mydom.net Mon Oct 13 16:28:55 2014 Elapsed time: 00:01:00
Interval packets: 337 (network) 154 (to host) 0 (dropped)
Total packets: 1308 (network) 316 (to host) 0 (dropped)
Monitoring packets from interface vmbr0
int pct total int pct total
NFS3 Read 64 42% 162 TCP Packets 151 98% 293
NFS3 Write 0 0% 0 UDP Packets 2 1% 13
NFS Read 0 0% 0 ICMP Packets 0 0% 0
NFS Write 0 0% 0 Routing Control 0 0% 0
NFS Mount 0 0% 0 Addr Resolution 0 0% 3
Port Mapper 4 3% 4 Rev Addr Resol 0 0% 0
RPC Authorization 0 0% 0 Ether/FDDI Bdcst 2 1% 15
Other RPC Packets 1 1% 1 Other Packets 1 1% 7
2 client hosts
Client host int pct total Client host int pct total
byers 1 2% 13 skinner 63 98% 149
In der obigen Ausgabe gibt es 2 Hosts, die den NFS-Server aktiv verwenden, byers
und skinner
. Sie können die Liste der Clients im unteren Teil der Ausgabe sehen.
Sie können auch netstat -an | grep :2049
sehen, welche Hosts eine Verbindung zum NFS-Server herstellen.
Ich würde es verwenden nfswatch
, da es kontinuierlich in eine Datei protokollieren kann, die später überprüft werden kann.
Antwort2
Es gibt einen NFS-Befehl, mit dem Sie sehen können, welche Hosts das NFS-Dateisystem vom Serversystem gemountet haben (übrigens nicht immer ganz genau).
Um dies jedoch einem bestimmten Benutzerkonto zuzuordnen, müsste dies auf jedem einzelnen Host durchgeführt werden, auf dem etwas wie lsof ausgeführt wird.