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 :

utilisé Perl Socket pour exécuter des commandes sur serveur distant


Sujet :

Modules Perl

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 79
    Points : 41
    Points
    41
    Par défaut utilisé Perl Socket pour exécuter des commandes sur serveur distant
    Bjr TLM,

    je veux exécuter des commandes sur un serveur de mon réseau local, et j'utilise un socket Perl
    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
    #!/usr/bin/perl
    #use strict;
    use warnings;
    
    $socket = IO::Socket::INET->new(PeerAddr=> '@IP',
                                            PeerPort=> 8080,
                                            Proto=> "tcp",
                                            Timeout=>10,
                                            Type=> SOCK_STREAM)   || die "Cannot connect to $adr_ip:$por $@";
          
    my $s=IO::Select->new();
    
    $socket->send("df -k"."\r",'');
    sleep 2;
    
    $socket->send("prstat"."\r",'');
    sleep 2;
    
    
    $socket->send("date"."\r",'');
    sleep 2;
    
    $s->remove($socket);
    close($socket);
    et quand j'exécute, j'ai ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ ./Perl_sock-v2.pl
    Name "main::adr_ip" used only once: possible typo at ./Perl_sock-v2.pl line 10.
    Name "main::por" used only once: possible typo at ./Perl_sock-v2.pl line 10.
    Can't locate object method "new" via package "IO::Socket::INET" (perhaps you forgot to load "IO::Socket::INET"?) at ./Perl_sock-v2.pl line 6.
    pour info, je suis nul en Socket, et c'est juste une tentative de ma part, pour le module net SSH Perl, j'arrive pas a l'installé, il me dis a chaque fois qu'il faut installé un tel ou tel module, alors je tente avec Socket

    et je sais pas si avec NET SSH PERL est plus rapide que le Socket en réponse,

    mais j'ai tenté en Socket mais ca passe pas !!!

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Points : 99
    Points
    99
    Par défaut
    salut,

    ou sont définis @IP, $adr_ip et $por ?
    et si tu veux utiliser le module IO::Socket::INET pense a l'appeller dans ton code.

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 79
    Points : 41
    Points
    41
    Par défaut
    ah OK, t'a raison, j'ai fait les chgts nécessaire, mais j'ai ce prob :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $ ./Perl_sock-v2.pl
    Cannot connect IO::Socket::INET: connect: Operation now in progress at ./Perl_sock-v2.pl line 11.
    que dois je faire maintenant !!!!

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Points : 99
    Points
    99
    Par défaut
    peut tu montrer le code

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 79
    Points : 41
    Points
    41
    Par défaut
    le 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
    #!/usr/bin/perl
    #use strict;
    use warnings;
     
    use IO::Socket;
     
    $host = '@IP';
    $port = 8080;
     
     
    $socket = IO::Socket::INET->new(PeerAddr=> $host,
                                            PeerPort=> $port,
                                            Proto=> "tcp",
                                            Timeout=>10,
                                            Type=> SOCK_STREAM)   || die "Cannot connect $@";
     
    $socket->send("command1"."\r",'');
    sleep 2;
     
    $socket->send("command2."\r",'');
    sleep 2;
     
     
    $socket->send("command3"."\r",'');
    sleep 2;
     
    close($socket);

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Points : 99
    Points
    99
    Par défaut
    à quoi correspond @IP ?

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 79
    Points : 41
    Points
    41
    Par défaut
    au lieu que je tape l'adresse IP, j'ai mis 0IP

    mais dans le Script, j'ai mis une adresse réel, pas les caractères 0IP

    voila mon ami

  8. #8
    Membre actif Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Points : 263
    Points
    263
    Par défaut
    quand tu met ton code dans la balise [CODE] n'y met aucune autres balises (genre pas de balises [SIZE="2"]) car cela enleve la coloration
    CKL
    N°°b forever
    --
    may the be with you

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Points : 99
    Points
    99
    Par défaut
    ok, par contre c'est normal que tu tentes une connexion ssh sur le port 8080 ?

  10. #10
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 79
    Points : 41
    Points
    41
    Par défaut
    OK, alors dans ce cas, quel Port je dois utilisé ???

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Points : 99
    Points
    99
    Par défaut
    le port ssh est le 22

    petit exemple de code qui fonctionne:
    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
     
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    use IO::Socket;
     
    my $host = '192.168.1.3';
    my $port = 22;
    my $socket; # IO::Socket:INET object
     
     
    $socket = IO::Socket::INET->new(PeerAddr=> $host,
                                    PeerPort=> $port,
                                    Proto=> "tcp",
                                    Timeout => 10,
                                    Type=> SOCK_STREAM) or die "Cannot connect $@";
     
    my $str; 
    my $received = recv($socket,$str,1024,0);
    print "- $str\n";
     
    close($socket);
    c'est un début ici le socket se connecte récupère le message envoyé par le sshd, l'affiche et se termine.

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 79
    Points : 41
    Points
    41
    Par défaut
    Salut TLM,

    ca marche pour moi

    l'erreur était dans mes commandes, car j'ai fait un telnet ce qui a obligé que les commandes qui suivent ne fonctionne pas en telnet

    mais ca marche, le prob était avec les commandes, la forme du Script est correct

    merci pour vous tous

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

Discussions similaires

  1. [Batch] Exécuter des commandes sur plusieurs serveurs en même temps
    Par Med_be dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 27/03/2015, 19h05
  2. Rapatriement des données sur serveur distant
    Par weebo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/09/2011, 11h29
  3. Erreur exécution fichier php sur serveur distant
    Par bipbipman2003 dans le forum Langage
    Réponses: 15
    Dernier message: 10/03/2011, 17h04
  4. Synchroniation des sauvegardes sur serveurs distants
    Par elodine dans le forum Administration
    Réponses: 2
    Dernier message: 28/12/2009, 09h25

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