如何确定目录是否位于 NFS 挂载驱动器上?

如何确定目录是否位于 NFS 挂载驱动器上?

如何确定 Linux 机器上的给定目录是否来自 NFS 挂载驱动器?

答案1

您可以使用df -t nfs <directory>,它将产生类似

$ df /home/aland/ -t nfs
Filesystem           1K-blocks      Used Available Use% Mounted on
nfs_oscar:/home      1255425376 874128064 316496736  74% /home

如果目录属于 NFS 挂载,则不执行任何操作:

$ df /root/ -t nfs
Filesystem           1K-blocks      Used Available Use% Mounted on

编辑:更简单的方法:(df -T <directory>标志-P用于禁用漂亮的格式以方便tailing 和awking):

$ df /home/aland/ -TP  | tail -n -1 | awk '{print $2}'
nfs

答案2

您可以使用该stat实用程序来-f表示您正在寻找有关文件系统的信息。

例如:

$ stat -f -c %T .
ext2/ext3
$ stat -f -c %T /sys
sysfs
$ stat -f -c %T /proc
proc
$ if [[ $(stat -f -c %T /proc) == proc ]] ; then echo Good ; fi
Good

(请参阅手册页以了解不同的格式选项,抱歉我手边没有 NFS 挂载。)

答案3

我会简单使用默认工具mountpoint

NAME
       mountpoint - see if a directory is a mountpoint

SYNOPSIS
       mountpoint [-d|-q] directory

由于您具体谈论的是NFS,这意味着您也可以访问showmount,只不过这项工作反过来(从主机而不是目录):

NAME
       showmount - show mount information for an NFS server

SYNOPSIS
       showmount [ -adehv ] [ --all ] [ --directories ] [ --exports ] [ --help ] [ --version ] [ host ]

相关内容