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 :

Gestion des erreurs


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Par défaut Gestion des erreurs
    Bonjour à tous,

    J'ai cherché et parcouru le forum et la FAQ mais je suis peut être passé à coté du tuto qui me faut ^^

    Pour faire simple je possède 1 serveur (Windows) et sur ce serveur 10 PC sous du Centos.

    Mon problème ce situe sur un script que je souhaite faire.
    1) il doit se connecter au ftp
    2) télécharger plusieurs fichiers
    3) extraire ces fichiers

    Pour tout ça 0 souci tout fonctionne mais j'aimerais y ajouter la gestion d'erreur et là... c'est le drame je ne m'y connais absolument pas assez...

    Si quelqu'un peut m'aider sur des tutoriels ou des cours que j'apprenne un peu ça j'en serais ravi ^^

    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
     
    #!/bin/sh
    #Modification du fichier Config si present en Config.bck
    mv Config Config.bck 
     
    echo "Connexion au FTP pour dl les fichiers"
    #Debut de connexion
    ftp <<**
    open X.X.X.X
    anonymous
     
    (ici je devrais faire ENTREE mais je serais devant Putty donc pas de souci là dessus)
     
    cd MISEAJOUR
    bin
    get MAJ.bz2
    bye
    **
    #Fin de connexion
    echo "Fin de connexion"
     
    echo "Decompression de l'archive... merci de patienter"
    tar -xf MAJ.bz2
     
    echo "C'est fini !!!"
    Donc ce que je cherche à faire :
    - Mettre en place un message d'erreur non bloquant si le dossier Config n'existe pas
    - Mettre en place un message d'erreur qui me sort du programme si la connexion au FTP n'est pas possible
    - Mettre en place une barre de progression pour le dézippage de l'archive (j'en demande peut être beaucoup et j'ai pas cherché ça encore)

    Je cherche pas la solution clef en main mais si quelqu'un peut me donner un coup de main pour m'expliquer tout ça j'en serais ravi ^^

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Bonjour,

    1/ help test.
    2/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if true; then echo ok; else echo ko; fi
    if false; then echo ok; else echo ko; fi
    en gros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if commande
    then
    else
    fi
    ton problème ce sera de caler le here-doc
    Tu peux facilement à la place utiliser echo (les commandes ftp ayant été placées dans une variable).
    Ou alors, utiliser un .netrc et une macro
    ...
    ?
    3/ aucune idée.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Par défaut
    Merci à toi, après quelque test pas vraiment réussi ça fonctionne ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #Modification du fichier Config si present en Config.bck
    if [ -d Config ]; then
            {
                    echo "Dossier Config en archive"
                    mv Config Config.bck
            }
    else
            {
                    echo "Le dossier Config n'existe pas"
            }
    fi
    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
     
    echo "Connexion au serveur terminee"
    #Verification de la presence de l'archive
    if [ -e Config.bz2 ]; then
            {
                    echo "##############################"
                    echo "##############################"
                    echo "Decompression de l'archive... merci de patienter..."
                    tar -xf Config.bz2
            }
    else
            {
                    echo "Le fichier n'est pas present sur le disque, merci de voir la connexion FTP"
                    exit
            }
    fi
    echo "C'est fini !!!"
    bref j'ai pas vraiment compris pour la connexion au FTP comment cela fonctionne mais au moins mon script sera un peu plus parlant ^^

    Merci en tout cas je vais continuer de chercher pour voir ce qui est possible de faire ^^

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    je voyais quelque chose comme ça :
    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
    ftpCmd="open X.X.X.X
    anonymous
     
    (ici je devrais faire ENTREE mais je serais devant Putty donc pas de souci là dessus)
     
    cd MISEAJOUR
    bin
    get MAJ.bz2
    bye"
     
    if echo "$ftpCmd" | ftp 
    then echo "connexion réussie"
         # tester l'existence du fichier ?
    else echo "la connexion a échoué"
    fi
    ...
    ?

    ou alors, après la connexion ftp tu testes $?
    Code pseudo-code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    si $? vaut 0
    alors connexion ftp ok
    autrement connexion ftp KO
    finsi
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Par défaut
    très bonne solution merci !! je viens de tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ftpCmd="open X.X.X.X
    anonymous
    ....
    "
     
    if echo "$ftpCmd" | ftp 
    then echo "connexion réussie"
         # tester l'existence du fichier ?
    else echo "la connexion a échoué"
    fi
    Ca fonctionne, mais si je colle ça, je vois pas comment reprendre le FTP...

    Je viens de tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    then
    echo "connexion ok"
    ftpDL="open 1.1.1.1
    anonymous
    cd maj
    bin
    get MAJ...
    bye"
    ça me retourne le connexion ok mais il prend pas le fichier... une idée ?


    --------------------
    Le top serait :
    Connexion => affiche le connexion OK => effectue le DL

    Mais avec ta solution il se co, dl et effectue le test après ce qui est déjà pas mal pour moi. Merci de ton aide.

Discussions similaires

  1. [FB] Gestion des erreurs et application francophone
    Par Benjamin GAGNEUX dans le forum Installation
    Réponses: 10
    Dernier message: 20/05/2006, 14h54
  2. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 16h51
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

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