IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Boucle mount infini


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Boucle mount infini
    Bonjour

    j'ai fait un petit script shell qui m'allume un VM au démarrage de mon pc (ça c'est ok )

    et qui me l'affiche en plein écran (ok aussi)

    Par contre j'au aussi une ligne pour monter un point de montage (partage fichier windows entre le linux et la vm windows)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MOUNTPOINT=MON/POINT/
     
    MOUNTDELAY=10
    while ! mount | grep "on ${MOUNTPOINT}" >> /var/tmp/start.out
    do
    sleep 10
    echo "waiting for mount point ..." >> /var/tmp/start.out
    # montage partage VM/indus
    mount.cifs -vvv \\\\ipVM/monpartage ${MOUNTPOINT} -o user=user,password=""
    done
    ça marche sauf que ça me le monte 10 fois de suite et je ne comprends pas .

    Pouvez-vous m'aider svp ?

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Salut,
    Citation Envoyé par asselulu42 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MOUNTPOINT=MON/POINT/
     
    MOUNTDELAY=10
    while ! mount | grep "on ${MOUNTPOINT}" >> /var/tmp/start.out
    do
    sleep 10
    echo "waiting for mount point ..." >> /var/tmp/start.out
    # montage partage VM/indus
    mount.cifs -vvv \\\\ipVM/monpartage ${MOUNTPOINT} -o user=user,password=""
    done
    Balise "code" (le #), stp.

    Et tu ne dois pas tout nous dire, parce que par exemple on voit ta constante MOUNTDELAY=10 mais on ne voit pas où elle est utilisée. Donc…

    Sinon, perso j'aurais mis le sleep 10 après l'instruction de mount, et j'aurais fait suivre d'un sync pour faire bonne mesure.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Effectivement je ne l'utilise pas.

    en fait j'ai un script dans le init.d qui se lance au démarrage du pc .
    celui ci lance la machine virtuelle dans un premier temps .

    Après je voudrais qu'il essaye de monter le dossier max 10 fois


    et si ça échoue ou réussi qu'il m'affiche la VM en full screen

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    #!/bin/bash
    #
    #
    #Script de lancement VM
    #
    #
    #NOM_DE_LA_VM
    DOM="mavm"
    MOUNTPOINT=/mon/montage
     
     
    #Démarrer la VM
    virsh --connect qemu:///system start $DOM &
     
    MOUNTDELAY=10
     
    while ! mount | grep "on ${MOUNTPOINT}"  >> /var/tmp/startvm.out
    do
        sleep 10
        echo "waiting for mount point ..."  >> /var/tmp/startvm.out
     
        # montage partage VM/indus
        mount.cifs \\\\ip/dossier ${MOUNTPOINT} -o user=user,password=""
    done
     
     
    sleep 5
     
    #Lancer la VM en plein ecran
     
     
    #Lancer la VM en plein ecran
    #on local display main screen (0)
     
     
    export DISPLAY=:0
    virt-viewer --connect qemu:///system -f $DOM

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Si tu es prête à attendre 10 fois dix secondes, ne vaut-il pas mieux attendre 100 secondes et monter une seule fois ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    il faudrait attendre que la machine virtuelle soit complètement démarrée, et donc joignable (via le port 22 ? par exemple.)
    puis tenter le montage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    until mountpoint -q "$mountPoint" # mountPoint : pas tout en majuscules, et pas d'accolades inutiles ! et entre guillemets.
    do
       mount.cifs ...
       sleep ${delay:-10}
    done
    l'incrémentation d'un compteur pour sortir de la boucle est triviale.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    N_BaH que change les majuscules ?


    Flodelarab bonne question je crois que ça fait tellement longtemps que je suis sur le probléme que je n'y ai pas pensé ;(

    je vais essayer vos suggestions demain

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    Citation Envoyé par asselulu42 Voir le message
    N_BaH que change les majuscules ?
    les variables tout en majuscules sont, par convention, réservées aux variables d'environnement : HOME, PWD, PATH...
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    si j'essaye en enlevant le mount du while et en mettant 1m ça fonctionne mais je voudrais que mon pc soit le plus rapidement accessible .

    Du coup l'idée du flag dans un while pour lui dire tant que la machine n'est pas démarrée me semble la plus judicieuse .

    j'ai regardé dans virsh man je n'ai pas trouvé ou faire un flag il faut que le windows de ma vm soit totalement démarré et en statu je n'ai que run ou non run .


    N_BaH je ne comprends pas ton idée de port 22 ?

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    je me dit qu'avec un ping ?

    si la vm ping alors je peux monter le partage

    qu'en pensez vous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    until ping -c1 @IPVM >/dev/null 2>&1; do :; done
    mount.cifs....

  10. #10
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    plutôt netcat sur le port du service qui met à disposition les fichiers.
    ping peut ne pas répondre; ça dépend ds réglage du firewall.
    netcat permet de choisir le port du serveur, il est forcément ouvert.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. algorithme boucle à l'infinie
    Par vladimire dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/01/2009, 20h22
  2. Boucle Javascript infinie
    Par Warman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/01/2009, 02h21
  3. Boucle while infinie
    Par god_enel dans le forum C
    Réponses: 1
    Dernier message: 16/04/2007, 11h35
  4. Boucle (quasi) infinie
    Par Anduriel dans le forum Langage
    Réponses: 9
    Dernier message: 12/10/2005, 16h36
  5. Complexité d'une boucle potentiellement infinie
    Par Hayato dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 06/09/2005, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo