PERL : ftp retry ...
Résolu
Bonjour,
je ne vois pas ce qui cloche, on dirait que le perl ne rentre jamais dans mon until :
J'ai surement raté un truc débile ....
Stéphane
je ne vois pas ce qui cloche, on dirait que le perl ne rentre jamais dans mon until :
#!/usr/bin/perl
use Sys::Hostname;
use Net::FTP;
$ftp_host="192.168.0.2";
$ftp_usr="login";
$ftp_mdp="pass";
$ftp_destination_rep = '/home/data/';
$email_from='from@domain.com';
$email_to='to@domain.com';
$ftp_ok=false;
until ($retry == 0 || $ftp_ok) {
print "appel";
$ftp_ok=ftp_upload($repertoire_destinataire,$fichier_destinataire);
print "retour : $ftp_ok\n";
$retry--;
if (!$ftp_ok) {sleep(30);}
}
sub ftp_upload
{
($repertoire, $fichier) = @_;
$ftp = Net::FTP->new($ftp_host, Debug => 0, Timeout=>240)
or do {
print "connexion impossible sur $ftp_host: $@\n";
return 0;
};
#or die "Cannot connect to $goftp_ftp: $@";
$ftp->login($ftp_usr,$ftp_mdp)
or do {
print "login impossible sur $ftp_host:",$ftp->message;
return 0;
};
#or die "Cannot login ", $ftp->message;
print "upload de $repertoire/$fichier\n";
$ftp->put("$repertoire/$fichier")
or do {
print "put impossible sur $ftp_host de $repertoire$fichier :",$ftp->message;
return 0;
};
#or die "put failed ", $ftp->message;
print "fin upload de $repertoire/$fichier\n";
$ftp->quit;
return 1;
}
__END__
J'ai surement raté un truc débile ....
Stéphane
3 réponses
-
Contributeurhello
que vaut $retry avant le until ? -
Contributeurque vaut $ftp_ok=false; ?
essaye $ftp_ok=0; -
Toutes ces erreurs te seraient reportées si tu utilisais les pragmas suivants:
use strict; use warnings;
C'est plus qu'une excellente habitude à prendre... mais, bien sûr, tu as le choix ;-)
Bonne continuation.