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

Linux Discussion :

Vérifier qu'une partition est bien montée


Sujet :

Linux

  1. #1
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    juillet 2004
    Messages
    2 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : juillet 2004
    Messages : 2 740
    Points : 6 678
    Points
    6 678
    Par défaut Vérifier qu'une partition est bien montée
    Bonjour

    Je souhaite vérifier que ma partition /usr/obj est bien montée avant de lancer le processus de formatage.

    J'ai une piste avec la commande:
    Existe-t-il d'autres solutions s'il vous plaît ?

    Merci
    .Olivier

  2. #2
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    juillet 2004
    Messages
    2 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : juillet 2004
    Messages : 2 740
    Points : 6 678
    Points
    6 678
    Par défaut
    Voilà où j'en suis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if [[ ! -d /usr/obj ]] then
        echo "=> /usr/obj doesn't seem to exist!"
        return 0
    else if [[ ! `/sbin/mount | /usr/bin/grep /usr/obj` ]] then
              sudo /sbin/mount /usr/obj && sudo /sbin/newfs wd0h && sudo /sbin/mount /usr/obj
          else
              echo "=> Error /usr/obj is already mounted!"
              return 0
          fi
    fi
    Sauf que j'obtiens une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    syntax error: `$(/sbin/mount | /usr/bin/grep /usr/obj)' missing expression operator
    Logiquement, cela devrait fonctionner
    .Olivier

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    9 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 9 631
    Points : 26 312
    Points
    26 312
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Olivier Regnier Voir le message
    Voilà où j'en suis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if [[ ! -d /usr/obj ]] then
        echo "=> /usr/obj doesn't seem to exist!"
        return 0
    else if [[ ! `/sbin/mount | /usr/bin/grep /usr/obj` ]] then
              sudo /sbin/mount /usr/obj && sudo /sbin/newfs wd0h && sudo /sbin/mount /usr/obj
          else
              echo "=> Error /usr/obj is already mounted!"
              return 0
          fi
    fi
    Sauf que j'obtiens une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    syntax error: `$(/sbin/mount | /usr/bin/grep /usr/obj)' missing expression operator
    Logiquement, cela devrait fonctionner
    Revois le but et l'utilisation des backquottes dans un script shell...

    Citation Envoyé par Olivier Regnier Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
              sudo /sbin/mount /usr/obj && sudo /sbin/newfs wd0h && sudo /sbin/mount /usr/obj
    Pourquoi deux fois ce "mount" ?
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  4. #4
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    juillet 2004
    Messages
    2 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : juillet 2004
    Messages : 2 740
    Points : 6 678
    Points
    6 678
    Par défaut
    Bonjour
    sudo /sbin/mount /usr/obj && sudo /sbin/newfs wd0h && sudo /sbin/mount /usr/obj
    Je me suis trompé lors de la recopie. La ligne corrigée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo /sbin/umount /usr/obj && sudo /sbin/newfs wd0h && sudo /sbin/mount /usr/obj
    Concernant les backquotes, je ne vois pas le problème
    Peux-tu me donner des explications s'il te plaît ?

    Merci

    PS: ces fonctions sont utilisées dans mon fichier /etc/profile et non un script shell.
    .Olivier

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    9 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 9 631
    Points : 26 312
    Points
    26 312
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Olivier Regnier Voir le message
    Concernant les backquotes, je ne vois pas le problème
    Peux-tu me donner des explications s'il te plaît ?
    Pas de pb

    La backquotte est un mécanisme shell qui te permet de récupérer un résultat qui aurait été normalement affiché à l'écran

    Exemple:
    => ça t'affiche à l'écran la date du jour (normal)

    => l'affichage écran est récupéré par le shell et celui-ci remplace la commande entre backquotes par son résultat. Bien sûr, dans cet exemple cela ne sert pas. Pour que ça serve, il faut traiter cet affichage par un moyen quelconque donc on peut avoir
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in `date`
    do
       echo $i
    done
    Autre exemple
    Exécution simple de la commande "pwd"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if `pwd` = "/home/truc"
    then
        echo oui
    fi
    Donc là, la commande "pwd" est exécutée et tout son affichage (le répertoire courant) vient remplacer ladite commande. Puis le shell continue son exécution et compare le résultat en question (le répertoire courant) avec la chaine "/home/truc"

    Donc pour résumer
    - si t'as juste besoin d'exécuter la commande (par exemple pour vérifier qu'elle réussi), tu l'inscrits telle quelle. Au besoin, si t'as pas envie d'avoir d'affichage, tu le rediriges vers /dev/null
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/sh
    # Script qui vérifie si un fichier existe
    if ls $1 1>/dev/null 2>/dev/null
    then
        echo "$1 existe"
    else
        echo "$1 n'existe pas"
    fi
    - si tu utilises les backquotes, c'est que t'as besoin de récupérer et traiter dans ton script le résultat qui aurait été affiché par la commande si tu l'avais lancée sans backquotes
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/sh
    # Script qui vérifie si je me trouve dans mon HOME
    if test `pwd` = "$HOME"
    then
        echo "Je dans mon HOME"
    else
        echo "Je ne suis pas dans mon HOME
    fi
    Donc pour ton script, tu devrais remplacer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if [[ ! `/sbin/mount | /usr/bin/grep /usr/obj` ]] then
    par la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if ! /sbin/mount | /usr/bin/grep /usr/obj 1>/dev/null then
    et ça devrait marcher (t'as pas vraiment besoin de récupérer l'affichage issu du grep, t'as juste besoin de vérifier si le grep a réussi ou pas...)

    Tu peux aussi utiliser une voie plus compliquée (et plus longue en terme CPU) avec l'instruction suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if [ -z "`/sbin/mount | /usr/bin/grep /usr/obj`" ] then
    Là, tu récupères l'affichage issu du grep qui devient une simple chaine et tu testes si cette chaine est vide ou pas...

    En espérant t'avoir aidé. Tu peux suivre un cours shell Linux ici http://linux.developpez.com/cours/
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  6. #6
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    juillet 2004
    Messages
    2 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : juillet 2004
    Messages : 2 740
    Points : 6 678
    Points
    6 678
    Par défaut
    Merci beaucoup pour tes explications

    Je vais également télécharger et lire ton cours. Cela me fera le plus grand bien

    Concernant la vérification de la partition, il était possible d'obtenir un code vraiment très simple, tellement simple que je n'y est même pas pensé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if /sbin/mount | /usr/bin/grep "/usr/obj"; then
        sudo /sbin/umount /usr/obj
    fi
    sudo /sbin/newfs wd0h
    if [[ $? != 0 ]] then
        echo "=> Error formatting /usr/obj!"
        return 0
    fi
    sudo /sbin/mount /usr/obj && cd /usr/src && sudo /usr/bin/make obj
    Encore une fois, merci pour tout
    .Olivier

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    9 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 9 631
    Points : 26 312
    Points
    26 312
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Olivier Regnier Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if /sbin/mount | /usr/bin/grep "/usr/obj"; then
        sudo /sbin/umount /usr/obj
    fi
    sudo /sbin/newfs wd0h
    if [[ $? != 0 ]] then
        echo "=> Error formatting /usr/obj!"
        return 0
    fi
    sudo /sbin/mount /usr/obj && cd /usr/src && sudo /usr/bin/make obj
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /sbin/mount | /usr/bin/grep "/usr/obj" && sudo /sbin/umount /usr/obj
    sudo /sbin/newfs wd0h ; status=$?
    if [[ $status -ne 0 ]] then
        echo "=> Error formatting /usr/obj!"
        return 0
    fi
    sudo /sbin/mount /usr/obj && ( cd /usr/src ; sudo /usr/bin/make obj )
    Et encore, je me demande si t'aurais pas avantage à faire un umount systématique même si /usr/obj n'est pas monté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sudo /sbin/umount /usr/obj 2>/dev/null
    sudo /sbin/newfs wd0h ; status=$?
    if [[ $status -ne 0 ]] then
        echo "=> Error formatting /usr/obj!"
        return 0
    fi
    sudo /sbin/mount /usr/obj && ( cd /usr/src ; sudo /usr/bin/make obj )
    PS: Non non, t'es pas un parano du spam toi avec une telle adresse ervivyb@ervatreb.bsav qu'il faut se déchiffrer à la César... mais si c'est bien ce que je pense, il me semble que le "b" de "ervatreb" est en trop...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 20/05/2015, 13h34
  2. Réponses: 0
    Dernier message: 16/10/2012, 14h39
  3. Comment vérifier si une application est bien démarrée
    Par emile.coue dans le forum Weblogic
    Réponses: 1
    Dernier message: 28/05/2010, 18h39
  4. Vérifier qu'une hiérarchie est bien organisée
    Par tendre_amie007 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 04/08/2009, 17h43
  5. Réponses: 1
    Dernier message: 08/08/2007, 19h07

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