Nfs

在掛載 NFS 共享之前,NFS 客戶端能否知道它是 NFS v3 還是 v4?

  • January 24, 2013

linux 中的 mount 命令需要 -t nfs4 才能掛載版本 4 NFS 共享,所以我需要事先知道它是哪個版本。

根據: NFS 版本 3 和 4 與 TCP/IP 協議,您可以輸入以下任一命令:

rpcinfo -p <hostname> |grep nfs

rpcinfo -s <hostname> |grep nfs 

注意:所有版本的命令似乎都支持**-p**參數,而 Solaris 和 GNU linux 變體也支持 -s 變體。

您可以將一些基於查詢的邏輯包含到一個 shell 腳本中,該腳本實例化一個可以插入到 mount 命令中的變數,例如

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

引用自:https://unix.stackexchange.com/questions/62379