在挂载NFS共享之前,NFS客户端能否知道它是NFS v3还是v4?

在挂载NFS共享之前,NFS客户端能否知道它是NFS v3还是v4?

Linux 中的 mount 命令需要 -t nfs4 才能挂载版本 4 NFS 共享,因此我需要事先知道它是哪个版本。

答案1

每: 采用 TCP/IP 协议的 NFS 版本 3 和 4,您可以输入以下命令之一:

rpcinfo -p <hostname> |grep nfs

rpcinfo -s <hostname> |grep nfs 

笔记:该命令的所有风格似乎都支持-p参数,而 Solaris 和 GNU Linux 变体也支持 -s 变体。

您可以将一些基于查询的逻辑包含到 shell 脚本中,该脚本实例化可以插入安装命令的变量,例如

nfsHost="11.22.33.44"
ARRAY=`rpcinfo -p $nfsHost |grep nfs |sed -e "s/ [\s ]*/ /g" -e "s/^ //" |cut -f2 -d" "`
Ver=0
for i in $ARRAY ; do if [ "$i" -gt $Ver ] ; then Ver=$i;fi;done
if [ $Ver -gt 0 ]
then 
    echo "Host: $nfsHost supports NFS version $Ver"; 
    mount -o vers=$Ver...........
fi

相关内容