NFS サーバーで次のコマンドを実行すると、接続されている NFS クライアントを見つけることができます:
netstat | grep :nfs
NFS は UDP と TCP の両方で動作し、開いている TCP 接続のみが netstat
に表示されます または ss
.また、分散ファイルシステムとして、(歴史的に) かなりの数の問題 (状態、キャッシュ、ロック、通知、セキュリティ — そのうちのいくつかは rpc.statd
などの追加の RPC 機能による解決策があります) を抱えていました。 ).
Linux NFS サーバー (man rpc.mountd
を参照) ) クライアントのマウント/アンマウント要求は /var/lib/nfs/rmtab
に記録されます 、ちょうど /etc/mtab
のように 、したがって、答えは次のようになります:
cat /var/lib/nfs/rmtab
空の場合は、rpc.mountd
に問題があります (したがって、実行中の RPC サービスを確認する必要があります)、またはすべてのクライアントがこの機能を使用しない NFSv4 です。
私がチェックしたバージョンでは rmtab
次のように表示されます:
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
つまり、各マウント ポイントがリストされ、その後にそれを使用するクライアントが続きます。
man ページの警告に注意してください:
<ブロック引用>ただし、このファイルはほとんど装飾用です。 1 つは、rpc.mountd の UMOUNT プロシージャを呼び出した後でも、クライアントが引き続きファイル ハンドルを使用できることです。 2 つ目は、クライアントが rpc.mountd に通知せずに再起動すると、古いエントリが rmtab に残ります。
/proc/fs/nfsd/client
この点では、新しいカーネルでのアプローチ (@Vsevolod Gromov の回答) の方が優れているはずですが、NFSv4 クライアントのみをサポートしているため、より適切に動作するはずです。
Linux カーネル 5.3 以降、/proc/fs/nfsd/clients
という特別なディレクトリを使用できます。 .
カーネルのバージョンは uname -r
で確認できます コマンド
netstat
以降 ss
に置き換えられるため、常に使用できるとは限りません。 あなたも使うかもしれません
ss -a|grep nfs