如何确定 NFS 远程是否正在导出目录?

如何确定 NFS 远程是否正在导出目录?

在我的脚本中,我有多层状态:

  1. 远程可用 (ping)
  2. 远程 NFS 服务处于活动状态
  3. 远程 NFS 正在导出某个目录
  4. 远程 NFS 已挂载(mount)

对于(2)和(3),我认为rcpinfo是最好的选择。但对于 (2),我无法弄清楚如何在不启动子 shell 的情况下将查询范围缩小到 NFS 服务(这对于该应用程序来说是不可接受的)。对于(3),我不确定这些信息是否可以远程获取(ssh当然,无需登录)。

我正在使用 RHEL 6,无法访问标准发行版中未包含的程序。

答案1

对于 3),您可能想使用showmount -e remote_nfs_serverwhich 显示remote_nfs_server 是否已导出任何内容。

对于2),如果您不想使用shubshel​​l并且知道远程服务器是否运行NFSv3或NFSv4以及TCP或UDP,您可以使用rpcinfo专门查询:
rpcinfo -u remote_nfs_server nfs 3 对于NFSv3通过UDP,
rpcinfo -t remote_nfs_server nfs 4对于NFSv4通过TCP

对于 4) 你可能想看看检查文件夹是否是已安装的远程文件系统


更多信息:

答案2

您可以用于showmount -e <server>#3 的某些方面。当导出很简单时,它至少会建议导出一个目录(或者可能是此类目录的父目录)。

# showmount -e server
/export                               (everyone)

对于#2,我不确定你在寻找什么。如果您使用 NFSv3,则至少需要查找 mountd 和 nfs(在某些情况下可能需要确认锁定管理器)。正如您所说,您可以使用 rpcinfo 明确检查任何内容。

# rpcinfo -t server mountd 3
program 100005 version 3 ready and waiting

答案3

列出所有伪根 NFS-V4 导出目录

ls /net/ip-addr-nfs-server

看看我在另一个帖子里的回答

相关内容