
¿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 -P
se usa para deshabilitar el formato bonito para facilitar tail
la entrada y awk
la entrada):
$ df /home/aland/ -TP | tail -n -1 | awk '{print $2}'
nfs
Respuesta2
Podrías usar la stat
utilidad para -f
decir 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 ]