¿Cómo determinar si un directorio está en una unidad montada en NFS?

¿Cómo determinar si un directorio está en una unidad montada en NFS?

¿Cómo puedo determinar si un directorio determinado en una máquina Linux proviene de una unidad montada en NFS o no?

Respuesta1

Podrías usar df -t nfs <directory>, que producirá resultados como

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

si el directorio pertenece al montaje NFS y nada más:

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

Editar: forma más sencilla: df -T <directory>(la bandera -Pse usa para deshabilitar el formato bonito para facilitar tailla entrada y awkla entrada):

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

Respuesta2

Podrías usar la statutilidad para -fdecir que estás buscando información sobre el sistema de archivos.

Por ejemplo:

$ 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

(Consulte la página de manual para conocer las diferentes opciones de formato y lo siento, no tengo un soporte NFS a mano).

Respuesta3

Simplemente usaría la herramienta predeterminada mountpoint:

NAME
       mountpoint - see if a directory is a mountpoint

SYNOPSIS
       mountpoint [-d|-q] directory

Dado que estás hablando específicamente de NFS, esto significa que también tienes acceso a showmount, excepto que esto funciona al revés (desde un host en lugar de un directorio):

NAME
       showmount - show mount information for an NFS server

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

información relacionada