Bonjour,
Je suis en train de créer un petit script SFTP en Perl.
Je fais différents traitements de suivi de mon script,
J'envoie mon fichier,
Je vérifie que l'envoie s'est bien déroulé,
Je (re) fais des traitements divers.
J'ai un problème sur le 3e point qui consiste à savoir si l'envoie s'est bien passé.
Voici mon code :
$handle ne renvoie rien (dans mon print) et j'ai le message :
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 [...] ouverture de la connexion #envoie du fichier if ( $sftp->put("$FICH","$REP_DEST/$FICH") != 1 ) { #écriture dans le fichier de log que l'envoie s'est mal passé (appel d'une fct LOG) $STAT_XRF{"$FICH"} = "KO" ; } else { # Check files are transmitted $handle = $sftp->do_open("$REP_DEST/$FICH"); print "handle...$handle ...\n"; if ( undef ) { #Ecriture dans le log qu'il y a eu une erreur lors de la verification (appel d'une fct LOG) $STAT_XRF{"$FICH"} = "KO" } else { # Ecriture dans le log que tout c'est bien déroulé (appel d'une fct LOG) $NB_XRF{"$FICH"} = "OK" ; } }
Pourtant si je ne transmet pas le fichier (donc que je commente le code plus haut) je ne rentre pas dans la boucle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Couldn't get handle: No such file or directory at ./cloner_sftp.pl line 195
J'ai donc eu l'idée de faire plutôt un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if ( undef ) { #Ecriture dans le log qu'il y a eu une erreur lors de la verification $STAT_XRF{"$FICH"} = "KO" ; }
Mais ca ne fonctionne pas... En gros, je ne sais faire un ... OR machin et machin2
Code : Sélectionner tout - Visualiser dans une fenêtre à part $handle = $sftp->do_open("$REP_DEST/$FICH") or {LOG (...); $STAT_XRF{"$FICH"} = "KO" ;}
Pourriez vous m'aider ?
Merci d'avance,
Bonne journée
Meloo![]()
Partager