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

Modules Perl Discussion :

Connexion SSH à plusieurs machines


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Par défaut Connexion SSH à plusieurs machines
    Bonjour,

    Je dois finir un petit script d'exploitation qui permet de récupérer les configurations des machines. Je récupère leurs @IP et les stock dans un tableau.

    Ensuite je boucle sur ce tableau et je me connecte en SSH sur chacune d'entre elles.

    Exemple :
    @IPA
    @IPB
    @IPC

    Je me connecte d'abord sur A, tout va bien, je me déconnecte. Maintenant je veux me connecter sur B. Sauf que la connexion échoue et de ce fait, mon programme s'arrete et ne se lance pas sur la machine C.

    Avez-vous une idée de comment faire pour que si la connexion échoue, le script continue quand même ?

    J'utilise cette fonction de connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sub connexionSSH {
      ($host) = @_;
      print "host = ".$host."\n";
      $ssh = Net::OpenSSH->new($host, user => $user, password => $password, master_stderr_discard => 1,master_opts => [-o => "StrictHostKeyChecking=no"]);
      $ssh->error and die "Erreur lors de la connexion : ".$ssh->error;
    }
    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    A tout hasard, en remplaçant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ssh->error and die "Erreur lors de la connexion : ".$ssh->error;
    par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ssh->error and warn "Erreur lors de la connexion : ".$ssh->error;
    ça donne quoi?

  3. #3
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 442
    Par défaut
    Bonjour,

    Sur la même idée de Lolo78, juste pour voir, fait un essai en supprimant $ssh->error

    Ou contrôler la connexion avec qqc comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my $login = $ssh->login();
            if ($login !~ /Welcome/) {
                die "Login has failed. Login output was $login";
            }
    et passer à la connexion suivante...

    J'imagine que B est réellement indisponible, sinon une petite tempo entre les différentes connexions.

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Par défaut
    J'ai essayé le warn, sans succès.

    Je vais essayer l'autre solution en supprimant le $ssh->error !

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Bonjour,

    Sans succès veut dire ?
    Merci de donner plus d'informations, de nous donner les messages s'affichant.

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Par défaut
    Voici mes erreurs :

    xx.xx.xx.1
    xx.xx.xx.2
    ==> Connexion SSH en cours...
    host = xx.xx.xx.1
    Erreur lors de la connexion : unable to establish master SSH connection: login timeout at ./recuperation_conf_pcrf.pl line 252, <> line 79.
    host = xx.xx.xx.1
    Use of uninitialized value in scalar chomp at ./recuperation_conf_pcrf.pl line 307, <> line 79.
    Use of uninitialized value in concatenation (.) or string at ./recuperation_conf_pcrf.pl line 310, <> line 79.
    Use of uninitialized value in concatenation (.) or string at ./recuperation_conf_pcrf.pl line 310, <> line 79.
    operation didn't complete sucessfullyunable to establish master SSH connection: login timeout at ./recuperation_conf_pcrf.pl line 351, <> line 79.
    remote command failed : unable to establish master SSH connection: login timeout at ./recuperation_conf_pcrf.pl line 365, <> line 79.
    remote command failed : unable to establish master SSH connection: login timeout at ./recuperation_conf_pcrf.pl line 379, <> line 79.
    remonte command failed : unable to establish master SSH connection: login timeout at ./recuperation_conf_pcrf.pl line 395, <> line 79.
    remote command failed : unable to establish master SSH connection: login timeout at ./recuperation_conf_pcrf.pl line 409, <> line 79.
    remote command failed : unable to establish master SSH connection: login timeout at ./recuperation_conf_pcrf.pl line 420, <> line 79.
    SSHAuthenticationError Login timed out. The input stream currently has the contents bellow: at /usr/lib/perl5/site_perl/5.8.8/Expect.pm line 828
    Dans cet exemple, je n'arrive pas à me connecter à la .1, cependant, je ne passe tout de même pas à la .2. De plus, la plupart des erreurs qui suivent sont le fruit de l'échec de la connexion.

    Et voici le fonctionnel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    GetOptions ("range=s" => \$range) or die("Error in command line arguments\n");
    $mem = $range;
    if (defined($range)) {
      recuperationIP($range);
      for (my $i = 0 ; $i < scalar(@tabIP) ; $i++) {
        recupConf($tabIP[$i]);
      }  
    }
    RecupConf est la fonction qui appellera la connexion SSH et les différentes commandes afin de récupérer la configuration de chaque équipement.
    Il faudrait que lors d'un échec de connexion je puisse sortir de la fonction recupConf afin de continuer dans ma boucle for (my $i = 0 ; $i < scalar(@tabIP) ; $i++)

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

Discussions similaires

  1. communication ssh sur plusieurs machine impossible
    Par kirua99 dans le forum Réseau
    Réponses: 2
    Dernier message: 26/01/2015, 16h26
  2. Connexion SSH machine hôte -> Virtualbox
    Par Guigui13 dans le forum VirtualBox
    Réponses: 14
    Dernier message: 29/08/2013, 01h58
  3. Réponses: 2
    Dernier message: 08/09/2011, 11h17
  4. connexion de plusieurs serveurs
    Par kheiro dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/10/2004, 11h49
  5. [Débutant] Connexion sur une machine distante protégée
    Par arthix dans le forum Développement
    Réponses: 3
    Dernier message: 28/08/2003, 09h46

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