Lenteur/blocage suite a l'utilisation de modules CPAN

Lenteur/blocage suite a l'utilisation de modules CPAN - Perl - Programmation

Marsh Posté le 23-09-2005 à 10:48:28    

Bonjour,
 
Je débute en perl, et pour un besoin regulier,j'ai utiliser les modules Net::SSH et Net::SFTP.
 
Mon objectif est de deposer un fichier perl, l'executer sur un serveur distant.Ce dernier fichier crée un fichier texte qui doit être rapatrié sur le serveur  
local. A priori, rien de bien compliqué.
 
Mais il se trouve que ce script reste bloqué, je le lance via Putty.
 
Voici le script :
 
 #! /usr/bin/perl -w
      2
      3 ## Utilisation du module pour se connecter en SSH sur un serveur distance
      4 use Net::SSH qw(ssh);
      5 ## Utilisation du module pour faire du FTP securise via le protocole SFTP
      6 use Net::SFTP;
      7
      8 ## Mise en place du mode de debugage
      9 use strict;
     10 use warnings;
     11
     12 ## Declaration des variables
     13 my $user ="****";
     14 my $host ="*****";
     15 my $file ="serv_appli";
     16 my $cmd ="perl serv_appli";
     17
     18 #Connection SFTP au serveur Host
     19 my %sftp_args = (user =>$user,password =>'*****');
     20 #my %sftp_args = (user =>$user,password =>'******');
     21 my $sftp = Net::SFTP->new($host,%sftp_args) || die "Cannot connect to Host !!! " ;
     22
     23 print "Connected\n";
     24
     25 #Transfert du fichier sur Host
     26 $sftp->put ('/home/scripts/serv_appli', '/root/serv_appli') || die "Cannot File Transfert         !!!";
     27
     28 #Execution du script Perl
     29 $sftp = ssh("$user\@$host", $cmd) || die "ssh: $_!"; ##Bloque ICI A PRIORI !!!!!!!
     30
     31 system ("scp $user\@$host:$host /home/result_test" );
     32
     33 exit 0;
 
Voici le lancement, il reste bloque après l'affchage de connected  :
[*****@ scripts]$ perl connexion
Connected
 
Si je fais un ctrl+C, j'obtiens bien la suite de l'execution du programme :
Killed by signal 2.
hostname                                                                 100% 9016     8.8KB/s   00:00
 
 
 
Merci de votre aide.
Sébastien

Reply

Marsh Posté le 23-09-2005 à 10:48:28   

Reply

Marsh Posté le 24-09-2005 à 09:23:13    

moi je crois que ca bloque à la ligne 31, au moment tu fais un appel système pour faire un scp : la commande doit sûrement te demander le password de manière interactive, et au moment où tu kill le prog (CTRL+C) il flush son tampon (résultat de la commande hostname) et te l'affiche
 
c'est marrant qu'on puisse mettre le password dans Net::SSH, sur search.cpan.org ca a tjs été marqué 'pas possible, utiliser ssh-agent"

Reply

Marsh Posté le 27-09-2005 à 12:27:37    

Je ne pense pas car si je rajoute par exemple a la ligne 30 :
ssh("$user\@$host", "rm $file" );  
Je n'ai pas d'effacement du fichier tant que je ne fais pas ctrl+c !!!
j'execute ce script sur des serveurs linux et sur du HP_ux et l'execution sur   HP_ux se deroule jusqu'a la fin sans faire de ctrl+C
 
Une autre idee ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed