Como determinar se um diretório está em uma unidade montada em NFS?

Como determinar se um diretório está em uma unidade montada em NFS?

Como posso determinar se um determinado diretório em uma máquina Linux é de uma unidade montada em NFS ou não?

Responder1

Você poderia usar df -t nfs <directory>, que produzirá uma saída como

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

se o diretório pertencer à montagem NFS e nada caso contrário:

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

Editar: maneira mais simples: df -T <directory>(o sinalizador -Pé usado para desativar a formatação bonita para facilitar tailo ing e awko ing):

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

Responder2

Você pode usar o statutilitário para -fdizer que está procurando informações sobre o sistema de arquivos.

Por exemplo:

$ 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

(Veja a página de manual para as diferentes opções de formatação e desculpe, não tenho uma montagem NFS à mão.)

Responder3

Eu simplesmente usaria a ferramenta padrão mountpoint:

NAME
       mountpoint - see if a directory is a mountpoint

SYNOPSIS
       mountpoint [-d|-q] directory

Como você está falando especificamente sobre NFS, isso significa que você também tem acesso a showmount, exceto que funciona ao contrário (de um host em vez de um diretório):

NAME
       showmount - show mount information for an NFS server

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

informação relacionada