在我的脚本中,我有多层状态:
- 远程可用 (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