100 votes

Vérifiez si le répertoire est monté avec bash

j'utilise

 mount -o bind /some/directory/here /foo/bar

Je veux vérifier /foo/bar avec un script bash et voir s'il a été monté ? Sinon, appelez la commande de montage ci-dessus, sinon faites autre chose. Comment puis-je faire ceci?

CentOS est le système d'exploitation.

187voto

Mark J. Bobak Points 5504

Vous n'avez pas pris la peine de mentionner un O/S.

Ubuntu Linux 11.10 (et probablement les versions les plus récentes de Linux) ont la commande mountpoint .

Voici un exemple sur un de mes serveurs :

 $ mountpoint /oracle
/oracle is a mountpoint
$ mountpoint /bin
/bin is not a mountpoint

En fait, dans votre cas, vous devriez pouvoir utiliser l' -q , comme ceci :

 mountpoint -q /foo/bar || mount -o bind /some/directory/here /foo/bar

J'espère que cela pourra aider.

74voto

Christopher Neylan Points 3394

L'exécution de la commande mount sans arguments vous indiquera les montages actuels. À partir d'un script shell, vous pouvez vérifier le point de montage avec grep et une instruction if :

 if mount | grep /mnt/md0 > /dev/null; then
    echo "yay"
else
    echo "nay"
fi

Dans mon exemple, l'instruction if vérifie le code de sortie de grep , qui indique s'il y avait une correspondance. Comme je ne veux pas que la sortie soit affichée lorsqu'il y a une correspondance, je la redirige vers /dev/null .

2voto

Richard Bronosky Points 3163

J'aime les réponses qui utilisent /proc/mounts , mais je n'aime pas faire un simple grep. Cela peut vous donner des faux positifs. Ce que vous voulez vraiment savoir, c'est "est-ce que l'une des lignes a cette chaîne exacte pour le champ numéro 2". Alors, posez cette question. (dans ce cas, je vérifie /opt )

 awk -v status=1 '$2 == "/opt" {status=0} END {exit status}' /proc/mounts

# and you can use it in and if like so:

if awk -v status=1 '$2 == "/opt" {status=0} END {exit status}' /proc/mounts; then
  echo "yes"
else
  echo "no"
fi

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X