我们有一个由许多 Linux 主机共享的挂载点。我们需要弄清楚哪些帐户正在使用哪些帐户以及何时读取/写入文件。我们应该怎样做呢?
答案1
如果您已nfswatch
安装,则可以使用它来确定正在访问 NFS 服务器的主机。您需要使用-clients
开关。
例子
$ 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
在上面的输出中,有 2 个主机正在主动使用 NFS 服务器,byers
并且skinner
.您可以在输出的下部看到客户端列表。
您还可以用来netstat -an | grep :2049
查看哪些主机正在连接到 NFS 服务器。
我会使用它,nfswatch
因为它可以连续记录到一个文件,然后可以在后面查看。
答案2
有一个 nfs 命令,您可以查看哪些主机已从服务器系统挂载了 NFS 文件系统(顺便说一句,并不总是完全准确)。
但是,必须在运行 lsof 之类的每个主机上跟踪回特定用户帐户。