Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/11/2013, à 10: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, à 23:22)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#2 Le 13/11/2013, à 23: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.

@amj@mastodon.xyz

Hors ligne

#3 Le 14/11/2013, à 01: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, à 01:13)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#4 Le 14/11/2013, à 04: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 smile

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 roll

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.

@amj@mastodon.xyz

Hors ligne

#5 Le 14/11/2013, à 10: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.

amj a écrit :

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, à 12: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 .
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, à 16: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.

@amj@mastodon.xyz

Hors ligne

#8 Le 24/11/2013, à 19: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, à 19:31)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#9 Le 24/11/2013, à 23: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 )

Dernière modification par Crestey (Le 24/11/2013, à 23:51)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne