#1 Le 13/11/2013, à 09:49
- Crestey
[Résolu] Montage NAS en nfs. Comment monter le NAS dès qu'il est "on".
Bonjour à tous,
j'ai 2 NAS montés en nfs gràce à ces lignes de fstab.
192.168.0.20:/mnt/HD_a2 /mnt/nas1 nfs defaults,user,noauto,noatime,intr 0 0
192.168.0.21:/mnt/HD_a2 /mnt/nas2 nfs defaults,user,noauto,noatime,intr 0 0
ça marche très bien.
Mais je souhaiterais améliorer un peu et faire en sorte que le pc puisse monter le nas si ce dernier est allumé après le pc.
Je ne sais pas trop quel est la meilleure façon de traiter la chose.
Faut-il passer par cron pour scruter la présence du nas ?
Faut-il qu'à l'allumage le nas informe le pc de sa présence ?
Quelqu'un peut-il m'aiguiller ?
En fait, j'imagine que sur un gros réseau en nfs, on doit évidemment traiter ce sujet, car on doit pouvoir éteindre/rallumer une machine sans devoir refaire un mount -a sur toutes les autres.
Dernière modification par Crestey (Le 24/11/2013, à 22:22)
Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.
Hors ligne
#2 Le 13/11/2013, à 22:11
- amj
Re : [Résolu] Montage NAS en nfs. Comment monter le NAS dès qu'il est "on".
Salut
Si tu utilise cron, le script à exécuter devrait ressembler à ça :
if [[ `cat /etc/mtab| grep /mnt/nas1` ]] && [[ `cat /etc/mtab| grep /mnt/nas2` ]] ;then echo : ; else if [[ `ping -c1 192.168.0.20` ]] && [[ `ping -c1 192.168.0.21` ]]; then : ; else mount -a ; fi ; fi
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#3 Le 14/11/2013, à 00:11
- Crestey
Re : [Résolu] Montage NAS en nfs. Comment monter le NAS dès qu'il est "on".
Merci amj
(Pour la suite je n'ai pris qu'un nas pour simplifier)
A partir de ta ligne j'ai écrit ça :
if [ "$(ping 192.168.0.20 -c1| grep '1 received')" = "" ]; then
echo Nas1PasPrésent;
else
echo Nas1Présent;
if [ "$(cat /etc/mtab| grep /mnt/nas1)" = "" ]; then
echo Nas1NonMonté
mount -a
mount /mnt/nas1
echo VientdetreMonté
else
echo Nas1Monté
fi
fi
En fait ça ne marche pas car si j'éteint le nas et que je rallume, et que je lance le script, il passe directement dans la branche "Nas1Monté".
En effet, le ping répond, et le mtab contient bien /mnt/nas1, mais pourtant le nas ne répond pas à la commande ls /mnt/nas1.
Il faudrait une commande qui me dise qu'il n'est pas monté dans ce cas (dans le cas d'une coupure).
Dernière modification par Crestey (Le 14/11/2013, à 00:13)
Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.
Hors ligne
#4 Le 14/11/2013, à 03:22
- amj
Re : [Résolu] Montage NAS en nfs. Comment monter le NAS dès qu'il est "on".
Je vais commenter ton code pour te montre ce qui est bizarre
if [ "$(ping 192.168.0.20 -c1| grep '1 received')" = "" ]
# ici 1)tu va vérifier qu'il y a bien 1 received, ce n'est pas nécessaire, 2) tu as mis [<expression>] au lieu de [[<expression>]] va voir le manuel de bash (enfin ça dépend de ce que tu veux faire mais c'est se compliquer la tache pour rien)
then
echo Nas1PasPrésent;
else
echo Nas1Présent;
if [ "$(cat /etc/mtab| grep /mnt/nas1)" = "" ]; then
echo Nas1NonMonté
mount -a
mount /mnt/nas1
#tu fais 2 fois la même opération fait soit mount -a soit mount /mnt/nas1
echo VientdetreMonté
else
echo Nas1Monté
fi
fi
ce que je ferais
if [[ `ping -c1 192.168.0.20` ]] #si le nas est en ligne
then #alors
echo Nas1PasPrésent;
else # ausi non
echo Nas1Présent;
if [[ `cat /etc/mtab| grep /mnt/nas1` ]] # si le nas est monté
then #alors
echo Nas1Monté
else # aussi non
echo Nas1NonMonté
mount -a # on monte le nas(en fait tout ce qu'il y a dans le /etc/fstab)
echo VientdetreMonté
fi
fi
Il y aurait eu moyen d'utiliser elif mais bon
utilise
bash -x '<nom_du_script>.sh'
pour déboguer
au fait dans le script du début j'ai fait des erreurs
if [[ `cat /etc/mtab| grep /mnt/nas1 && cat /etc/mtab| grep /mnt/nas2` ]]
then :
else
if [[ `ping -c1 192.168.0.20 && ping -c1 192.168.0.21` ]]
then :
else mount -a
fi
fi
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#5 Le 14/11/2013, à 09:39
- Crestey
Re : [Résolu] Montage NAS en nfs. Comment monter le NAS dès qu'il est "on".
Merci amj,
Et pardon pour mes script un peu gauche. Mais je pense que ce que tu suggères ne fonctionne pas chez moi.
En effet, indépendamment d'écrire un script, si on fait successivement les commandes suivantes au terminale, le nas reste invisible :
1) ping nas ? : ok
2) présence nas dans mtab ? : ok
3) ls /mnt/nas1 : ok (je peux lire les dossiers du nas, tout va bien)
4) off/on nas (simulation d'une coupure nas)
5) ping nas ? : ok
6) présence nas dans mtab ? : ok
7) ls /mnt/nas1 : ne liste plus le nas (donc il n'est plus monté)
Après un off/on, les 2 tests que tu suggères donnent toujours ok, bien que le nas ne soit plus monté.
Pour que ls refonctionne sur nas1, il me faut faire un mount -a, alors que les 2 tests sont ok.
illustration:
root@crestey-Pegatron:/home/crestey# ping -c1 192.168.0.21
PING 192.168.0.21 (192.168.0.21) 56(84) bytes of data.
64 bytes from 192.168.0.21: icmp_req=1 ttl=64 time=0.756 ms
--- 192.168.0.21 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.756/0.756/0.756/0.000 ms
root@crestey-Pegatron:/home/crestey# cat /etc/mtab| grep /mnt/nas1
192.168.0.20:/mnt/HD_a2 /mnt/nas1 nfs rw,user=root,noexec,nosuid,nodev,noatime,intr,addr=192.168.0.20 0 0
root@crestey-Pegatron:/home/crestey# ls /mnt/nas1
amd.run Francoise Lycée Tennis zSauvegardes
avastclear.exe fun_plug Mail Thomas
avast_free_antivirus_setup01.exe fun_plug.d Sophie tmp
Dominique GestionFoyer Souvenirs zRecup
root@crestey-Pegatron:/home/crestey# echo "là je fais un off/on sur le nas"
là je fais un off/on sur le nas
root@crestey-Pegatron:/home/crestey# ping -c1 192.168.0.21
PING 192.168.0.21 (192.168.0.21) 56(84) bytes of data.
64 bytes from 192.168.0.21: icmp_req=1 ttl=64 time=8.52 ms
--- 192.168.0.21 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 8.523/8.523/8.523/0.000 ms
root@crestey-Pegatron:/home/crestey# cat /etc/mtab| grep /mnt/nas1
192.168.0.20:/mnt/HD_a2 /mnt/nas1 nfs rw,user=root,noexec,nosuid,nodev,noatime,intr,addr=192.168.0.20 0 0
root@crestey-Pegatron:/home/crestey# ls /mnt/nas1
Et là, le ls reste planté, muet comme une carpe.
P.S.
tu fais 2 fois la même opération fait soit mount -a soit mount /mnt/nas1
Je suis obligé de faire comme ça, en 2 fois. Si tu regardes les lignes fstab en #1, elle sont en "noauto ". Elles vont de paire avec un
sleep 5
mount /mnt/nas1
dans /etc/rc.local
Si je ne fais pas comme ça, le nas ne se monte pas à l'allumage du pc.
Je pense que cette tempo est nécessaire car sinon le pc essaie de monter le nas alors que le nfs n'est pas encore en place.
ça ne le fait pas en cifs. ça se monte à partir de sleep 4.
Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.
Hors ligne
#6 Le 14/11/2013, à 11:01
- Crestey
Re : [Résolu] Montage NAS en nfs. Comment monter le NAS dès qu'il est "on".
La réponse est peut-être là.
Je teste ça et te tiens au courant.
Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.
Hors ligne
#7 Le 14/11/2013, à 15:15
- amj
Re : [Résolu] Montage NAS en nfs. Comment monter le NAS dès qu'il est "on".
Si tu as lu le début de la page de autofs
Si vous éteignez l'ordinateur qui partage ses données, les autres ordinateurs auront des difficultés à gérer la situation (par exemple, le shutdown qui bloque à cause d'un ancien montage nfs).
C'est probablement le même problème que la ligne de mtab qui reste malgré que le nas soit éteint.
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#8 Le 24/11/2013, à 18:30
- Crestey
Re : [Résolu] Montage NAS en nfs. Comment monter le NAS dès qu'il est "on".
Bonjour,
J'ai testé.
ça marche bien. J'éteint et je rallume le nas et ils se remonte tout seul
Seul hic: Quand le nas est off-line, nautilus met environ 2mn15 à me rendre la main si je clique sur le nas.
Je googolise pour régler ça. Pour l'instant sans succès
/etc/auto.master contient :
+auto.master
/mntfs /etc/auto.nfs --ghost,--timeout=30
/etc/auto/nfs contient :
nas1 -fstype=nfs,rw,intr 192.168.0.20:/mnt/HD_a2
et les lignes nfs de fstab sont rendues inactives (mis en commentaire)
Dernière modification par Crestey (Le 24/11/2013, à 18:31)
Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.
Hors ligne
#9 Le 24/11/2013, à 22:21
- Crestey
Re : [Résolu] Montage NAS en nfs. Comment monter le NAS dès qu'il est "on".
Et puis non, finallement, ça ne marche pas à tous les coups.
De temps en temps, sans que je sache pourquoi, sur un off/on du nas, il ne se monte pas !
J'ai donc réglé ça avec crontab:
J'ai mis les lignes suivantes dans /etc/crontab
# Monte automatiquement les nas s'ils ne le sont pas déjà (scrute 1 x par minute)
* * * * * root sh /opt/AutoNfs
et le fichier /opt/AutoNfs contient
#! /bin/bash
ping -c1 192.168.0.20
TEST=$?
[ $TEST -eq 0 ] && [ ! -e "/mnt/nas1/fun_plug" ] && mount /mnt/nas1
ping -c1 192.168.0.21
TEST=$?
[ $TEST -eq 0 ] && [ ! -e "/mnt/nas2/fun_plug" ] && mount /mnt/nas2
Après plusieurs tests, ça marche nickel.
(Les fichiers fun_plug sont obligatoirement présent suite à l'installation de nfs sur les nas, voir là)
Dernière modification par Crestey (Le 24/11/2013, à 22:51)
Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.
Hors ligne