Comment déterminer si un répertoire est sur un lecteur monté NFS?

3

Comment puis-je déterminer si un répertoire donné sur une machine Linux provient d'un lecteur monté NFS ou non?

WilliamKF
la source
Vous pouvez toujours regarder la sortie de mount. Il listera toutes les montures sur le système. Vous serez en mesure de savoir si votre dossier se trouve sur l'un des montages basés sur le chemin du dossier.
MaQleod

Réponses:

6

Vous pouvez utiliser df -t nfs <directory>, ce qui produira une sortie comme

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

si le répertoire est lié au montage NFS, et rien sinon:

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

Edit: plus simple: df -T <directory>(drapeau -Pest utilisé pour désactiver la mise en forme assez pour faciliter tailING et awkING):

$ df /home/aland/ -TP  | tail -n -1 | awk '{print $2}'
nfs
un terrain
la source
6

Vous pouvez utiliser l' statutilitaire avec -fpour indiquer que vous recherchez des informations sur le système de fichiers.

Par exemple:

$ 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

(Voir la page de manuel pour les différentes options de formatage. Désolé, je n'ai pas de montage NFS à portée de main.)

Tapis
la source
1

Je voudrais simplement utiliser l'outil par défaut mountpoint:

NAME
       mountpoint - see if a directory is a mountpoint

SYNOPSIS
       mountpoint [-d|-q] directory

Puisque vous parlez spécifiquement de NFS, cela signifie que vous avez également accès à showmount, sauf que cela fonctionne dans l’inverse (à partir d’un hôte au lieu d’un répertoire):

NAME
       showmount - show mount information for an NFS server

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