Accueil > Linux > montage nfs, script d’automatisation

montage nfs, script d’automatisation

Les partages nfs sont vraiment pratiques à mettre en oeuvre dans un reseau *NIX. Le problème est que pour un utilisateur non dégrossi, rien n’est prévu pour faciliter le montage automatique. D’ailleurs c’est vraiment quelque chose de regrettable quand sur une distribution à large public (Ubuntu par ex), il n’est prévu qu’un interfacage de samba … le comble quand même. Bref, soucieux de faciliter l’ utilisation des partages pour des utilisateurs adeptes du click, j’ai réalisé un petit script tout sale mais bien pratique…

Les partages nfs ne sont pas forcément installés sur des serveurs tournant 24h/24 mais sont distribués sur plusieurs postes du réseau. Ces postes peuvent être éteinds au moment de leur sollicitation par le client. Dans ce cas, il faut donc avertir l’utilisateur que le partage est indisponible afin qu’il fasse le nécessaire ( c.a.d allumer les postes du partage ou /et raccorder au réseau leur propre poste).

Un autre cas est celui ou l’utilisateur profite du partage nfs puis après une pause sur sa session reprends ces activités. Dans cet intervalle de temps, le serveur est peut être devenu inactif. Dans ce cas, certains processus appelés peuvent être bloqués (faites le test chez vous, montez un partage nfs, éteignez le serveur et essayer de faire un df pour voir …)

Dans cette hypothèse, il faut démonter le partage avec l’option -l (lazy) et avertir l’utilisateur.

Voici donc le schéma du script que je vous propose:

schéma logique d' auto_nfs.sh

Suivit du script lui-même:

Auto_nfs.sh
#!/bin/bash
NFS_SERV="192.168.1.40:/nfs_share" # Mettre ici le repertoire nfs partagé
NFS_MOUNTDIR="/mnt/srv" # Mettre ici le point de montage local
NFS_NICK="poste test" # Mettre ici l’appellation du serveur nfs

NFS_IP_SERV=$(echo $NFS_SERV | cut -d: -f1)
NFS_EXPORTDIR=$(echo $NFS_SERV | cut -d: -f2)

MOUNTDIR=$(cat /proc/mounts | grep $NFS_MOUNTDIR | cut -d  -f2)
EXPORTDIR=$(/sbin/showmount -e $NFS_IP_SERV | grep $NFS_EXPORTDIR | cut -d  -f1)

# on teste si le partage est accessible
if [ "$EXPORTDIR" == "$NFS_EXPORTDIR" ] ; then
        echo "serveur joignable"
        # le partage est accessible, on teste si il est monté
        if [ "$NFS_MOUNTDIR" == "$MOUNTDIR" ] ; then
                echo "répertoire $NFS_MOUNTDIR monté" # c’est déjà monté fin du test
        else  
                /bin/mount $NFS_MOUNTDIR # On monte le rep
                echo "répertoire $NFS_MOUNTDIR monté"
        fi
else    
        # le partage est inaccessible, on averti par une fenetre pop-up
        echo "serveur non joignable"
        /usr/bin/zenity –info –text "le partage n’est pas accessible,\nvérifier si $NFS_NICK est actif"
        # On teste si le partage apparait encore comme monté (cas d’une exintection du serveur)
        if [ "$NFS_MOUNTDIR" == "$MOUNTDIR" ] ; then
                /bin/umount -l $NFS_MOUNTDIR # le serveur s’est éteind on démonte avec l’option -l
        fi
        exit # On sort du script
fi              

# Mettre ici l’action a réaliser
# par exemple, ouvrir le navigateur de fichier sur le rep monté, ouvrir un média player etc …
echo awaiting your action here …

Il suffit ensuite de créer un lanceur sur le bureau (kde ou gnome) pointant sur le script. L’utilisateur sera averti d’un dysfonctionnement avec une fenêtre pop-up via zenity. Il faudra aussi renseigner le partage nfs dans etc/fstab afin de rendre le script fonctionnel pour un simple utilisateur.

Catégories :Linux Étiquettes : ,
  1. Aucun commentaire pour l’instant.
  1. septembre 28, 2010 à 4:46

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :