Il serait intéressant de savoir quel interpréteur shell et quel client FTP tu utilises. As-tu la possibilité d'en changer ?
Si tu utilises la commande ftp "standard" avec les commandes à exécuter données sur l'entrée standard et les mots de passe dans le fichier ~/.netrc, la gestion des erreurs est particulièrement fastidieuse...
En effet, le code retour du ftp rique d'être systématiquement 0, même si une erreur de login ou de transfert s'est produite. En fonction des versions du client et des options, l'exécution des commandes données en entrée va continuer jusqu'au bout (quit, bye ou CTRL-D) ou s'arrêter à la première erreur. Le contrôle de la bonne exécution des transferts peut alors se faire en analysant les logs sur la sortie standard et/ou la sortie d'erreur et en comptant éventuellement le nombre de "Transfer complete" si plusieurs fichiers sont transférés. Si en plus, tu veux savoir ce qui a planté, ça devient vraiment galère...
Mais bon, il y a quand même des solutions. Il doit bien exister des clients FTP permettant d'exécuter les commandes FTP une à une et de tester un code retour significatif, mais j'avoue ne pas en connaître.
En revanche, si tu as la possibilité de choisir l'interpéteur shell utilisé, penche-toi sur ZSH qui inclut (en module chargeable ou via une option de compilation) un client FTP. Tu exécutes alors tes commandes FTP une par une ("zftp open host user password", "zftp get fichier", ...) et tu peux à chaque commande tester le code retour.
[bash est installé en standard sur les distributions Linux, mais zsh mérite vraiment d'être (re)connu !]
Autre possibilité, si tu n'est pas hostile à d'autres langages : programme tes connexions et transferts FTP avec des langages qui offrent un client FTP (nativement ou via un module). En fonction de tes connaissances et de tes gouts tu devrais pouvoir choisir ce qui te convient le plus (Perl, disponible partout en standard, python ou la plupart des autres langages interprétés conviendront).
# Quel interpréteur ?
Posté par JJD . En réponse au message code de retour FTP. Évalué à 1.
Il serait intéressant de savoir quel interpréteur shell et quel client FTP tu utilises. As-tu la possibilité d'en changer ?
Si tu utilises la commande ftp "standard" avec les commandes à exécuter données sur l'entrée standard et les mots de passe dans le fichier ~/.netrc, la gestion des erreurs est particulièrement fastidieuse...
En effet, le code retour du ftp rique d'être systématiquement 0, même si une erreur de login ou de transfert s'est produite. En fonction des versions du client et des options, l'exécution des commandes données en entrée va continuer jusqu'au bout (quit, bye ou CTRL-D) ou s'arrêter à la première erreur. Le contrôle de la bonne exécution des transferts peut alors se faire en analysant les logs sur la sortie standard et/ou la sortie d'erreur et en comptant éventuellement le nombre de "Transfer complete" si plusieurs fichiers sont transférés. Si en plus, tu veux savoir ce qui a planté, ça devient vraiment galère...
Mais bon, il y a quand même des solutions. Il doit bien exister des clients FTP permettant d'exécuter les commandes FTP une à une et de tester un code retour significatif, mais j'avoue ne pas en connaître.
En revanche, si tu as la possibilité de choisir l'interpéteur shell utilisé, penche-toi sur ZSH qui inclut (en module chargeable ou via une option de compilation) un client FTP. Tu exécutes alors tes commandes FTP une par une ("zftp open host user password", "zftp get fichier", ...) et tu peux à chaque commande tester le code retour.
[bash est installé en standard sur les distributions Linux, mais zsh mérite vraiment d'être (re)connu !]
Autre possibilité, si tu n'est pas hostile à d'autres langages : programme tes connexions et transferts FTP avec des langages qui offrent un client FTP (nativement ou via un module). En fonction de tes connaissances et de tes gouts tu devrais pouvoir choisir ce qui te convient le plus (Perl, disponible partout en standard, python ou la plupart des autres langages interprétés conviendront).
Bon courage,
JJD