我們有一個由許多 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 之類的每個主機上追蹤回特定使用者帳戶。