Re: autofs, program map et option ghost

2005-11-14 Par sujet RTyler

Mourgues Bastien a écrit :


Salut, je ne sais pas si tu as eu des réponses à ton message sur la
liste, à tout hasard, voici ma petite contribution :
 


en l'occurence pas que je sache (je n'ai pas le temps d'aller voir ce soir)


remplace
key=pwd

par quelque chose comme 
key=`pwd`
 

pourquoi pas mais visiblement cela marchait avec le auto.net donc cela 
devrait marcher avec le script modifié.



si tu veux stocker un chemin et non pwd dans ta variable key :)

Ensuite, je ne suis pas sur qu'automount soit lancé dans le repertoire
qui t'interresse, peut être que le $1 initial est plus pertinent (je
n'ai pas testé, c'est donc juste une supposition/suggestion)
 

Le problème c'est que le $1 implique forcément un argument en entrée. 
Hors l'argument serait passé via un cd quelque chose, ce quelque chose 
devenant l'argument (c'est comme cela que ça semble marcher avec 
auto.net). Le problème c'est qu'en mettant un argument je peux dire 
adieux à l'option ghost (pas possible de faire de l'auto-montage via 
clics, ce que je cherche précisément à faire, pour montrer aux gens 
qu'un linux peut être aussi, voire plus simple qu'un windows)...



enfin, déjà, en réglant le problème d'affectation de ta variable, tu
devrais y voir plus clair :)
 

J'essaierai de toute façon, on ne sait jamais, il peut y avoir une 
différence malgré tout, bien que cela marche correctement sans le 
changement avec auto.net . Ce qui me perturbe le plus c'est de voir la 
différence de comportement entre les deux scripts sachant que le début 
est le même... Autre chose, je n'ai pas trouvé comment se passait 
vraiment le passage d'arguments. Je constate que lorsque je fais cd 
partage/christine cela lance le script auto.net avec l'argument 
christine, mais pourquoi ? Pourquoi un sous-répertoire christine ? 
Comment faire si je veux mélanger tous les répertoires partagés ? La 
réponse qui me vient à l'esprit est : le script doit être sûr que le 
montage soit toujours possible, qu'il n'y a pas deux répertoires 
différents montés sur le même point de montage. Il doit donc y avoir une 
vérification de l'unicité du point de montage. Quoiqu'il en soit il y a 
des comportements louches...



a+
 

Merci beaucoup en tout cas, cela fait toujours avancer le schmilblick. 
Cela ne peut aller que dans le bon sens.



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs From et Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: autofs, program map et option ghost

2005-11-14 Par sujet RTyler

Bastien Mourgues a écrit :


Tu n'as pas du comprendre la subtilité du changement :)

si tu fais
key=pwd

la variable key va contenir la chaine de caractère pwd
 

Si j'avais bien compris, j'avais juste mélangé avec la manip pwd  
/home/monrep/test.txt
J'avais mis cette ligne dans les deux scripts (auto.net et le auto.net 
revisité à ma sauce) juste au début (la partie identique sur les deux 
scripts) et dans un cas j'avais bien le répertoire accédé 
(partage/christine par ex) et dans l'autre j'avais un beau .directory 
alors que j'avais tenté le même accès.


si tu fais 
key=`pwd`

la variable key va contenir le _résultat_ de la commande pwd (soit le
chemin courrant).

Dans auto.net, on a
key=$1
soit : la variable key contient le contenu du premier paramètre passé
au script (le premier repertoire dans le chemin étant le nom du serveur
à contacter).

Le script auto.net (ou ton script dans ton cas) est invoqué par
automount, lui même réveillé par le noyau suite à un accès dans le
répertoire de «partages». 


Il me semble que automount appelle ce script en lui passant en paramètre
le répertoire que l'utilisateur à essayer d'atteindre.
 

Oui c'est bien ma conclusion par contre ce qui est étrange c'est que le 
répertoire se crée. Le résultat de auto.net avec comme argument 
christine par ex c'est les répertoires partagés de christine (du genre 
/etc et non christine/etc). Donc en toute logique autofs devrait monter 
le(s) répertoire(s) partagé(s) en partage/etc et non partage/christine. 
Visiblement avec autofs quand on fait cd christine le répertoire se crée 
et christine est passé en argument du script.



Si le repertoire courrant est aussi modifié (résultat de la commande
pwd), ça doit marcher avec aussi.
 

Oui j'avais effectivement fait une erreur sur pwd au lieu de `pwd` 
(pourquoi le simple quote inversé ?) mais ton explication était clair 
dès le premier coup :)



Ce que tu dois faire dans ton script, c'est de faire correspondre le
repertoire que l'utilisateur a essayé d'atteindre avec un des
répertoires exportés par ton serveur ( un style de showmount -e $host |
grep $rep )
 

En tout cas cela a bien avancé et cela résoudra peut-être (probablement) 
le problème. Il n'empêche qu'avec key=$1 à la place de key=`pwd` dans un 
cas key comprenait bien quelque chose et dans l'autre cas il comprenait 
.directory



bon courage ;)
 

Merci, j'en ai à nouveau maintenant. Merci encore. Je tiens la liste au 
courant des résultats.


RTyler


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs From et Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: autofs, program map et option ghost

2005-11-13 Par sujet RTyler
Personne n'a d'idées ? Il manque des précisions ? S'il vous plait dites 
moi que quelqu'un a une idée... :)


Bonne soirée à tous.

RTyler

RTyler a écrit :

Bonjour la liste,


j'aimerai avoir un montage automatique de mes ressources NFS et que les 
règles ne soient pas écrites à l'avance. Pour se faire, j'ai récupérer 
le script /etc/auto.net livré avec autofs et j'ai tenté de l'adapter (je 
mets plus bas le script initial puis le mien) afin qu'il me génère une 
map conforme à ce que je cherche (à savoir j'ai un répertoire Partage 
sur mon système et je voudrais qu'il monte dedans les partages NFS 
suivant cette arborescence : NomServeurNFS/NomDossierPartage et non 
NomServeurNFS/NomCompletDossierPartage (ie je ne veux pas toute 
l'arborescence du répertoire partagé mais juste son nom) comme dans 
auto.net .


Par ailleurs je souhaiterai que les répertoires soient visible par 
avance en graphique de manière à n'avoir pas à taper le nom du 
répertoire partagé (puisque les répertoires partagés sont susceptible de 
changer). J'ai donc utilisé l'option --ghost dans auto.master et ai 
modifié le script auto.net également pour qu'il n'attende aucun argument.


1) Mais voila, cela ne marche pas. Déjà même sans l'option --ghost et 
sans la modification de l'argument il y a une différence entre auto.net 
et auto_nfs (le script modifié) : bien que le début soit identique, 
auto_nfs ne récupère rien dans key...


2) Ensuite, lorsque je veux utiliser l'option ghost et que je fais la 
modification adéquate (à savoir je remplace key=$1 par key=pwd le 
montage automatique ne se fait plus. J'ai tenté un 
pwd/home/moi/test.txt pour voir ce qui se passait et justement, il ne 
se passe rien. Le script devrait être appelé quand on accède à 
Partage/NomServeurNFS mais visiblement il n'en est rien. Il semble 
attendre que je tape quelque chose pour passer au script un argument.


J'espère que vous aurez des suggestions à me faire parce que là je 
sèche. D'ailleurs si vous avez une idée également pour qu'à terme je 
n'ai même pas besoin de spécifier les ordinateurs partageant quelque 
chose et garder le ghosting cela m'intéresse beaucoup (du genre je vais 
dans Partage, je vois les ordinateurs de mon réseau connectés, et quand 
je vais dans leur sous-répertoire respectif je vois les différents 
partage afférents). Juste une idée me suffirait, ce serait d'ailleurs 
grandement plus bénéfique pour moi que je mette en pratique tout seul 
donc un lien me ravirait complètement.


Merci d'avance et bonne journée à tous.

RTyler

Annexes (je ne copie que le nécessaire)

auto.master


/home/rtyler/Partage/   /etc/auto_share --timeout=60 --ghost

auto.net
--

#!/bin/bash

# $Id: auto.net,v 1.8 2005/04/05 13:02:09 raven Exp $

# This file must be executable to work! chmod 755!

# Look at what a host is exporting to determine what we can mount.
# This is very simple, but it appears to work surprisingly well

key=$1

# add nosymlink here if you want to suppress symlinking local filesystems
# add nonstrict to make it OK for some filesystems to not mount
opts=-fstype=nfs,hard,intr,nodev,nosuid,nonstrict,async

# Showmount comes in a number of names and varieties.  showmount is
# typically an older version which accepts the '--no-headers' flag
# but ignores it.  kshowmount is the newer version installed with knfsd,
# which both accepts and acts on the '--no-headers' flag.
#SHOWMOUNT=kshowmount --no-headers -e $key
#SHOWMOUNT=showmount -e $key | tail -n +2

for P in /bin /sbin /usr/bin /usr/sbin
do
   for M in showmount kshowmount
   do
   if [ -x $P/$M ]
   then
   SMNT=$P/$M
   break
   fi
   done
done

[ -x $SMNT ] || exit 1

# Newer distributions get this right
SHOWMOUNT=$SMNT --no-headers -e $key

$SHOWMOUNT | LC_ALL=C sort +0 | \
   awk -v key=$key -v opts=$opts -- '
   BEGIN{ ORS=; first=1 }
   { if (first) { print opts; first=0 }; print  \\\n\t $1, key : 
$1 }

   END{ if (!first) print \n; else exit 1 }
   '

/etc/auto_nfs
-

#!/bin/bash

# $Id: auto.net,v 1.8 2005/04/05 13:02:09 raven Exp $

# This file must be executable to work! chmod 755!

# Look at what a host is exporting to determine what we can mount.
# This is very simple, but it appears to work surprisingly well

#key=$1
key=pwd

pwd  /home/rtyler/test1.txt

# add nosymlink here if you want to suppress symlinking local filesystems
# add nonstrict to make it OK for some filesystems to not mount
opts=-fstype=nfs,hard,intr,nodev,nosuid,nonstrict,async

# Showmount comes in a number of names and varieties.  showmount is
# typically an older version which accepts the '--no-headers' flag
# but ignores it.  kshowmount is the newer version installed with knfsd,
# which both accepts and acts on the '--no-headers' flag.
#SHOWMOUNT=kshowmount --no-headers -e $key
#SHOWMOUNT=showmount -e $key | tail -n +2

for P in /bin /sbin /usr/bin /usr/sbin
do
   for M in showmount kshowmount
   do
   if 

autofs, program map et option ghost

2005-11-11 Par sujet RTyler

Bonjour la liste,


j'aimerai avoir un montage automatique de mes ressources NFS et que les 
règles ne soient pas écrites à l'avance. Pour se faire, j'ai récupérer 
le script /etc/auto.net livré avec autofs et j'ai tenté de l'adapter (je 
mets plus bas le script initial puis le mien) afin qu'il me génère une 
map conforme à ce que je cherche (à savoir j'ai un répertoire Partage 
sur mon système et je voudrais qu'il monte dedans les partages NFS 
suivant cette arborescence : NomServeurNFS/NomDossierPartage et non 
NomServeurNFS/NomCompletDossierPartage (ie je ne veux pas toute 
l'arborescence du répertoire partagé mais juste son nom) comme dans 
auto.net .


Par ailleurs je souhaiterai que les répertoires soient visible par 
avance en graphique de manière à n'avoir pas à taper le nom du 
répertoire partagé (puisque les répertoires partagés sont susceptible de 
changer). J'ai donc utilisé l'option --ghost dans auto.master et ai 
modifié le script auto.net également pour qu'il n'attende aucun argument.


1) Mais voila, cela ne marche pas. Déjà même sans l'option --ghost et 
sans la modification de l'argument il y a une différence entre auto.net 
et auto_nfs (le script modifié) : bien que le début soit identique, 
auto_nfs ne récupère rien dans key...


2) Ensuite, lorsque je veux utiliser l'option ghost et que je fais la 
modification adéquate (à savoir je remplace key=$1 par key=pwd le 
montage automatique ne se fait plus. J'ai tenté un 
pwd/home/moi/test.txt pour voir ce qui se passait et justement, il ne 
se passe rien. Le script devrait être appelé quand on accède à 
Partage/NomServeurNFS mais visiblement il n'en est rien. Il semble 
attendre que je tape quelque chose pour passer au script un argument.


J'espère que vous aurez des suggestions à me faire parce que là je 
sèche. D'ailleurs si vous avez une idée également pour qu'à terme je 
n'ai même pas besoin de spécifier les ordinateurs partageant quelque 
chose et garder le ghosting cela m'intéresse beaucoup (du genre je vais 
dans Partage, je vois les ordinateurs de mon réseau connectés, et quand 
je vais dans leur sous-répertoire respectif je vois les différents 
partage afférents). Juste une idée me suffirait, ce serait d'ailleurs 
grandement plus bénéfique pour moi que je mette en pratique tout seul 
donc un lien me ravirait complètement.


Merci d'avance et bonne journée à tous.

RTyler

Annexes (je ne copie que le nécessaire)

auto.master


/home/rtyler/Partage/   /etc/auto_share --timeout=60 --ghost

auto.net
--

#!/bin/bash

# $Id: auto.net,v 1.8 2005/04/05 13:02:09 raven Exp $

# This file must be executable to work! chmod 755!

# Look at what a host is exporting to determine what we can mount.
# This is very simple, but it appears to work surprisingly well

key=$1

# add nosymlink here if you want to suppress symlinking local filesystems
# add nonstrict to make it OK for some filesystems to not mount
opts=-fstype=nfs,hard,intr,nodev,nosuid,nonstrict,async

# Showmount comes in a number of names and varieties.  showmount is
# typically an older version which accepts the '--no-headers' flag
# but ignores it.  kshowmount is the newer version installed with knfsd,
# which both accepts and acts on the '--no-headers' flag.
#SHOWMOUNT=kshowmount --no-headers -e $key
#SHOWMOUNT=showmount -e $key | tail -n +2

for P in /bin /sbin /usr/bin /usr/sbin
do
   for M in showmount kshowmount
   do
   if [ -x $P/$M ]
   then
   SMNT=$P/$M
   break
   fi
   done
done

[ -x $SMNT ] || exit 1

# Newer distributions get this right
SHOWMOUNT=$SMNT --no-headers -e $key

$SHOWMOUNT | LC_ALL=C sort +0 | \
   awk -v key=$key -v opts=$opts -- '
   BEGIN{ ORS=; first=1 }
   { if (first) { print opts; first=0 }; print  \\\n\t $1, key 
: $1 }

   END{ if (!first) print \n; else exit 1 }
   '

/etc/auto_nfs
-

#!/bin/bash

# $Id: auto.net,v 1.8 2005/04/05 13:02:09 raven Exp $

# This file must be executable to work! chmod 755!

# Look at what a host is exporting to determine what we can mount.
# This is very simple, but it appears to work surprisingly well

#key=$1
key=pwd

pwd  /home/rtyler/test1.txt

# add nosymlink here if you want to suppress symlinking local filesystems
# add nonstrict to make it OK for some filesystems to not mount
opts=-fstype=nfs,hard,intr,nodev,nosuid,nonstrict,async

# Showmount comes in a number of names and varieties.  showmount is
# typically an older version which accepts the '--no-headers' flag
# but ignores it.  kshowmount is the newer version installed with knfsd,
# which both accepts and acts on the '--no-headers' flag.
#SHOWMOUNT=kshowmount --no-headers -e $key
#SHOWMOUNT=showmount -e $key | tail -n +2

for P in /bin /sbin /usr/bin /usr/sbin
do
   for M in showmount kshowmount
   do
   if [ -x $P/$M ]
   then
   SMNT=$P/$M
   break
   fi
   done
done

[ -x $SMNT ] || exit 1

# Newer distributions get this right