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