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

Administration système Discussion :

vérifier si un mount est correctement fait


Sujet :

Administration système

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 55
    Points : 30
    Points
    30
    Par défaut vérifier si un mount est correctement fait


    J'utilise "smbmount" pour monter des volumes sur un serveur au sein d'un réseau LAN. Je mets ce contenu dans un arborescence définie qui est : "/home/user/nomduserveur/nomduvolume".
    Pour creer cet arborescence j'utilise mkdir.

    Cependant, j'ai parfois des problèmes avec "smbmount" et mon contenu est vide alors : Est-il possible de contrôler/vérifier si le mount a été bien fait dans mon code c++?

    J'utilise le code suivant avec notamment la fonction système qui execute du bash, est ce une bonne solution?

    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
     
    {
    ......
    // je récupère les données de mon thread
    	LEAShareItem* l_parent = (LEAShareItem*)a_data;
    // j(utilise wxConfig de wxWidget pour conserver des données ici mdp pour essai
    	wxConfigBase* config = wxConfigBase::Get();
    // je recupère ces données
    	config->Write(_T("username"),l_parent->m_devicePt->m_username);
    	config->Write(_T("password"),l_parent->m_devicePt->m_password);
    // je définis le path du dossier destinataire				
    	wxString path;
    	wxString l_mountdirectory = path.Format(_T("$HOME/lacie_mount/%s/%s"),l_parent->m_devicePt->GetName().c_str(),l_parent->m_sharePt->GetName().c_str());
    // je crèes le dossier destinataire en question par mkdir
            wxString  str = _CTS("mkdir -p ") + l_mountdirectory;
    	system(_STC(str));
    //ke montes le tout par smbmount et system  
    	wxString mount;
    	wxString mount2= mount.Format(_T("smbmount //%s/%s %s -o username=%s,password=%s"),l_parent->m_devicePt->GetName().c_str(),l_parent->m_sharePt->GetName().c_str(),l_mountdirectory.c_str(),l_parent->m_devicePt->m_username.c_str(),l_parent->m_devicePt->m_password.c_str());
    system(_STC(mount2))<<endl;
    -----------
    ->>> ici j'aimerais controler si le mont a bien été fais!!!!! :-)
    -----------
    //j' ouvre le contenu dans un browser
    	wxFile file;
    	file.Exists(_T("/usr/bin/konqueror"));
    	if(file.Exists(_T("/usr/bin/konqueror")))
    		std::system(_STC(_T("konqueror ") + l_mountdirectory));
    	if(file.Exists(_T("/usr/bin/nautilus")))
    		std::system(_STC(_T("nautilus ") + l_mountdirectory));
    	pthread_exit (0);
    }


    Merci

    Robux

    PS : Kubuntu feisty

  2. #2
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 161
    Points : 168
    Points
    168
    Par défaut
    Citation Envoyé par robux
    J'utilise "smbmount" pour monter des volumes sur un serveur au sein d'un réseau LAN. Je mets ce contenu dans un arborescence définie qui est : "/home/user/nomduserveur/nomduvolume".
    Pour creer cet arborescence j'utilise mkdir.
    tu utilises un utilisateur par serveur ?

    si je devais faire ça, je pense que je mettrais les montages dans un répertoire sous /mnt, par exemple /mnt/nomduserveur/nomduvolume

    Citation Envoyé par robux
    Est-il possible de contrôler/vérifier si le mount a été bien fait dans mon code c++?
    En c++ je ne sais pas, mais en simple ligne de commande, un mount te dit ce qui est monté en ce moment. Il y a probablement une interface de développement dans un package smb*-dev ou quelque chose dans ce genre là. Par contre je ne sais pas si cette interface est en c++, il est tout à fait possibel qu'elle soit en c.

    Sinon, si tu veux t'assurer que les montages samba sont bien faits, tu peux essayer de faire un simple ls dans un répertoire monté, et si tes répertoires et fichiers sont là, c'est qu'à priori, tout s'est bien passé.

  3. #3
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 55
    Points : 30
    Points
    30
    Par défaut
    je suis toujours je n'ai pas encore trouvé

    Citation Envoyé par wtfu Voir le message
    tu utilises un utilisateur par serveur ?
    pas compris ta question

    Citation Envoyé par wtfu Voir le message
    si je devais faire ça, je pense que je mettrais les montages dans un répertoire sous /mnt, par exemple /mnt/nomduserveur/nomduvolume
    C'est vrai je vais changer ça mais ce n'est pas le plus gros problème. Je cherche vraiment une possibilité de contrôler si le mount a été fait.

    Citation Envoyé par wtfu Voir le message
    En c++ je ne sais pas, mais en simple ligne de commande, un mount te dit ce qui est monté en ce moment. Il y a probablement une interface de développement dans un package smb*-dev ou quelque chose dans ce genre là. Par contre je ne sais pas si cette interface est en c++, il est tout à fait possibel qu'elle soit en c.
    Je ne cherche pas un outil mais un bout de code a intégrer au mien

    Citation Envoyé par wtfu Voir le message
    Sinon, si tu veux t'assurer que les montages samba sont bien faits, tu peux essayer de faire un simple ls dans un répertoire monté, et si tes répertoires et fichiers sont là, c'est qu'à priori, tout s'est bien passé.

    "ls" me semble beaucoup trop insuffisant et dans mon code c++ celà suggère que je dois faire appel à système pour utiliser ls. Comment faire à part cette idée.
    De plus les répétoire n'ont rien avoir avec le mount mais avec le mkdir et JUSTEMENT. donc vérifier s'il sont présent ne justifira pas que le mount a bien été faits. par contre pour les fichier c'est une idée. j'y ai pensé mais je ne la trouve pas très propre. Enfin en tappant mount on voit effectivement si le mount a été fait mais comment EXPLOITER cette piste? trier les informations?

    Merci

    Robux

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Points : 1 058
    Points
    1 058
    Par défaut
    Bonjour.

    Si le système monté n'est pas vide, un vérification de la taille du dossier (avant et après l'opération de montage) peut-être une solution. Est-tu sûr que la fonction que tu utilises pour monter ton fichier ne renvoie de code pour indiquer si l'opération fut un succès?

  5. #5
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 55
    Points : 30
    Points
    30
    Par défaut
    Salut,

    Citation Envoyé par vinc-mai Voir le message
    Bonjour.
    Si le système monté n'est pas vide, un vérification de la taille du dossier (avant et après l'opération de montage) peut-être une solution.
    C'est une bonne idée aurait tu un bout de code please sous linux mais à integrer en c++

    Citation Envoyé par vinc-mai Voir le message
    Est-tu sûr que la fonction que tu utilises pour monter ton fichier ne renvoie de code pour indiquer si l'opération fut un succès?
    Bah en fait j'execute au sein de mon code c++ comme tu as pu le voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    wxString mount;
    wxString mount2= mount.Format(_T("smbmount //%s/%s %s -o username=%s,password=%s"),l_parent->m_devicePt->GetName().c_str(),l_parent->m_sharePt->GetName().c_str(),l_mountdirectory.c_str(),l_parent->m_devicePt->m_username.c_str(),l_parent->m_devicePt->m_password.c_str());
    system(_STC(mount2))<<endl;
    la fonction STC transforme simplement la String en char*. en fait j'utilise system(""). et système renvoie une valeur si l'appel a bien été fait mais pas si elle a été exécutée. il peyt y avoir un succès avec derrière un SMB failed dans mon terminal et là c'est foutu mon contenu est vide.


    Ta première idée est interessante, même s'il faut utiliser "systèm()" ça me va.

    @ toute

    Robux

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Points : 1 058
    Points
    1 058
    Par défaut
    Il y a sûrement mieux! Désolé le c++ je connais pas. Peut-être devrais-tu poser ta question dans un forum c++.

Discussions similaires

  1. Vérifier si la clé générée est correcte
    Par mathisdu42 dans le forum VB.NET
    Réponses: 4
    Dernier message: 01/07/2015, 22h56
  2. Réponses: 3
    Dernier message: 18/11/2011, 13h53
  3. Réponses: 9
    Dernier message: 24/08/2009, 17h27
  4. Vérifier si un texte rentré est en fait une URL
    Par krokmitaine dans le forum Delphi
    Réponses: 2
    Dernier message: 10/11/2006, 16h12
  5. vérifier si un chemin de destination est correct
    Par philistase dans le forum MFC
    Réponses: 6
    Dernier message: 12/01/2005, 11h12

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