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 tail
o ing e awk
o ing):
$ df /home/aland/ -TP | tail -n -1 | awk '{print $2}'
nfs
Responder2
Você pode usar o stat
utilitário para -f
dizer 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 ]