如何确定 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
用于禁用漂亮的格式以方便tail
ing 和awk
ing):
$ 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 ]