![如何确定 NFS 远程是否正在导出目录?](https://linux22.com/image/35418/%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%20NFS%20%E8%BF%9C%E7%A8%8B%E6%98%AF%E5%90%A6%E6%AD%A3%E5%9C%A8%E5%AF%BC%E5%87%BA%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
在我的脚本中,我有多层状态:
- 远程可用 (ping)
- 远程 NFS 服务处于活动状态
- 远程 NFS 正在导出某个目录
- 远程 NFS 已挂载(mount)
对于(2)和(3),我认为rcpinfo
是最好的选择。但对于 (2),我无法弄清楚如何在不启动子 shell 的情况下将查询范围缩小到 NFS 服务(这对于该应用程序来说是不可接受的)。对于(3),我不确定这些信息是否可以远程获取(ssh
当然,无需登录)。
我正在使用 RHEL 6,无法访问标准发行版中未包含的程序。
答案1
对于 3),您可能想使用showmount -e remote_nfs_server
which 显示remote_nfs_server 是否已导出任何内容。
对于2),如果您不想使用shubshell并且知道远程服务器是否运行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