Re: autofs, program map et option ghost
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
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
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
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