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 :

Code erreur avec Expect.


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Par défaut Code erreur avec Expect.
    Bonjour à tous et surtout merci de votre indulgence ainsi que de votre aide

    Voila, en faite j'ai fait un script backup_switch.sh qui permet de faire de la sauvegarde de configuration des switchs HP
    Il va lire un fichier switch.txt et pour chaque ligne, il va appeler un autre fichier script.exp qui utilise expect pour faire un scp du fichier de configuration.

    Cependant je n'arrive pas à me débrouiller pour utiliser les code erreurs pour si l'un de mes switchs n'est plus joignable qu'il m'envoit un email pour me prévenir.

    Voici mes fichiers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    switch# more switch.txt 
    switch1@switch1.toto.net
    switch2@switch2.toto.net
    switch3@switch3.toto.net
    switch4@switch4.toto.net

    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
    # more backup_switch.sh 
    #!/bin/bash -x
     
    ## Vérification du dossier ##
    echo password du user:
    p1=`echo tutututu`
    date=$(date '+%Y-%m-%d')
    dir="/data/Conf_switch/hp/$1/Save_$date"
    if [ -d "$dir" ]; then
    echo "le dossier existe !"
    rm -rf $dir
    fi
     
    ## Sauvegarde des configurations ##
    mkdir /data/Conf_switch/hp/$1/Save_`date '+%Y-%m-%d'`
    echo OK
    cat /root/Save_switch/switch.txt |while read switch
    do
    nom=` echo $switch | cut -d@ -f1`
    /root/Save_switch/script.exp `echo $p1 | tr A-Za-z N-ZA-Mn-za-m` /data/Conf_switch/hp/$1/Save_`date '+%Y-%m-%d'`/$nom-`date '+%Y-%m-%d-%H-%M'`.conf "$switch:/cfg/startup-config" $nom
     
    if [ $? -ne 0 ]; then
      echo "La sauvegarde de $nom ne s'est pas bien passee." | mail -a "From: no-reply@toto.com"  -s "Erreur de la sauvegarde des switchs HP" papa.noel@toto.com
    fi
    done
     
    echo FIN
    exit 0
    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
    #!/usr/bin/expect -f
     
    set force_conservative 0 ;# set to 1 to force conservative mode even if
    ;# script wasn't run conservatively originally
    if {$force_conservative} {
    set send_slow {0 .0}
    proc send {ignore arg} {
    sleep .1
    exp_send -s -- $arg
    }
    }
    set fic [lindex $argv 1]
    set dir [lindex $argv 2]
    set nom [lindex $argv 3] 
    spawn scp $dir $fic 
    set pp [lindex $argv 0]
    send -- "PROCEDURE EN COURS...\r"
    expect -exact "\r$nom's password: "
    send -- "$pp\r"
    expect eof
    exit 0

    Si quelqu'un a une petite idée de comment je pourrais faire ça serait fort sympathique

    Merci beaucoup.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Est-ce que le script expect va jusqu'à sa fin ?
    Essayez d'afficher le code de retour, cela peut aider.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Par défaut
    Tout d'abord, Merci LittleWhite.

    Pour répondre à ta question : Oui le code expect va jusqu'au bout, enfin je le pense vu que tout fonctionne correctement.

    Maintenant pour afficher le code retour, si tu peux me donner une piste sur comment on fait, j'avouerais que la programmation et moi on fait 8 tellement qu'on ne s'aime pas et tout ce que je fais, je le fais en mode "bricolage" je suis sur que des vrais développeurs me taperais tellement que c'est moche ce que je fais

    Merci encore pour toute l'aide apporté.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Devrait suffire.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Par défaut
    Bonjour, Désolé pour la réponse tardive.

    J'ai rajouté le echo $? dans le script d'Expect juste avant le exit 0 mais cela ne m'affiche rien.

    Je ne sais pas si c'est la ou je devais le mettre.

    Merci encore pour l'aide.

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

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

    on a eu une discussion similaire il y a peu de temps.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Récupérer code erreur avec Firebird et Zeoslib
    Par seabs dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/06/2010, 16h28
  2. message d'erreur avec code::blocks
    Par kamnouz dans le forum Code::Blocks
    Réponses: 5
    Dernier message: 05/01/2008, 17h55
  3. quel code écrire en cas d'erreur avec "worksheetfunction.vlookup"
    Par lerouxjm dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/12/2007, 17h38
  4. Réponses: 1
    Dernier message: 23/07/2007, 13h45
  5. des messages d'erreurs avec mon code
    Par ulysse031 dans le forum Langage
    Réponses: 15
    Dernier message: 25/05/2007, 18h14

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