Problème récupération fichier FTP erreur 503 use Auth first

xda_7822 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
brupala Messages postés 112037 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

J'ai créé un .bat fort simple pour uploder chaque jour un fichier de puis un serveur distant que j'accède via FTP.

Si j'utilise Filezilla je peux me connecter mais mon batch me retourne l'erreur "503 use Auth first" et je n'arrive pas à contourner ce problème.

L'erreur se produit aprés l'instruction "echo user USER_TOTO MDP_TOTO"

Si quelqu'un peut me sauver !!!!!

Ci-dessous mon batch

echo off

set path=C:\toto

(

    echo open int-clt.toto.fr 21000

    echo user USER_TOTO MDP_TOTO

    echo prompt

    echo binary

    echo get /SOC-TIERS.CSV

    echo disconnect

    echo bye

) >> %path%\log.ftp

cd C:\WINDOWS\system32

ftp -s:C:\toto\log.ftp -n

pause >nul

A voir également:

5 réponses

contrariness Messages postés 21228 Date d'inscription   Statut Membre Dernière intervention   6 183
 

Je ne suis pas un specialiste des batch, mais l'erreur indique que vous tentez une action avant de vous etre authentifié...
Y'aurait pas 2 lignes a inverser dans votre batch ?

0
brucine Messages postés 21714 Date d'inscription   Statut Membre Dernière intervention   3 430
 

Bonjour,

Non puisque la commande ftp lit le fichier de paramétrage log.ftp avant d'être exécutée et que l'authentification y survient juste après la connexion.

Ce fichier de paramétrage n'est pas forcément au format .ftp (.txt suffit) et on ne voit pas l'intérêt de le recréer à la volée à chaque exécution.

Si on ne veut pas la rémanence des identifiants, il faudra supprimer le Batch, retour à la case départ, ou intégrer dans le Batch la suppression du fichier .txt sur le disque après emploi.

Pour revenir à nos moutons, il me semble que si on veut que identifiant et mot de passe soient sur la même ligne, on doit comme les autres utiliser le commutateur -n avant le nom du fichier:

ftp -n -s:C:\toto\log.ftp

Mais puisque l'on écrit pas au kilomètre et qu'on passe par un fichier de paramétrage, rien n'interdit non plus, cette fois-ci sans le commutateur -n, au lieu de:

echo user username password

deux lignes successives:

echo username
echo password


La commande de PATH est par ailleurs discutable (il me suffit de qualifier le chemin de copie du script), et celle qui suit ne sert à rien puisque C:\Windows\System32 fait partie du PATH par défaut et que ftp.exe s'y trouve.

0
xda_7822 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   > brucine Messages postés 21714 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour brucine merci de vous intéresser à mon problème. Pour ce qui est de la suppression du log.ftp je suis d'accord le but premier étant de télécharger un fichier la finalité de script c'est pour plus tard.

J'ai aussi tester avec un batch contenant la ligne

ftp -s:toto.ftp et aussi ftp -s:toto.ftp -n

puis le script :

open int-clt.toto.fr 21000
AUTH TLS
user ID_TOTO MDP_TOTO
prompt
get /SOC-TIERS.CSV
quit

Mais j'ai la même erreur.

Je note aussi aussi tu parle de faire 2 lignes d'identification

echo username
echo password

J'avais déjà cherché de ce coté mais la ligne

echo password MDP_TOTO me retourne une erreur "commande non valide". 

0
brucine Messages postés 21714 Date d'inscription   Statut Membre Dernière intervention   3 430 > xda_7822 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

Je n'ai pas d'erreur dans le fichier de Log après avoir recopié servilement ton script sauf évidemment le dossier personnalisé et la commande ftp elle-même, bien qu'à un echo global, mais chacun le sien, je préfère rediriger chaque ligne:

echo open int-clt.toto.fr 21000>>log.txt

echo user USER_TOTO MDP_TOTO>>log.txt

Il n'y a pas de raison que la commande echo ne soit pas valide, elle recopie ce qu'on lui demande au kilomètre sauf caractère spécial non échappé.

Mais qui n'est pas echo password MDP_TOTO>>log.txt mais
echo MDP_TOTO>>log.txt: la séquence ftp sait que, dans l'ordre, c'est l'identifiant et le mot de passe qu'elle attend.

0
xda_7822 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

merci pour votre aide mais non ce n'est pas cela j'ai déjà essayé

0
contrariness Messages postés 21228 Date d'inscription   Statut Membre Dernière intervention   6 183
 

Et Filezilla, n'as pas un log d'erreur ?

0
xda_7822 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

Non lorsque je me connecte avec Filezilla tout se passe bien. Sauf que bien enttedu mon but n'est pas d'utiliser filezilla mais de faire un .bat pour le mettre dans une tâche planifiée par la suite et automatiser la récupération du fichier en question

0
brucine Messages postés 21714 Date d'inscription   Statut Membre Dernière intervention   3 430
 

Bonjour,

Il me semble de mémoire (un moment que je ne touche plus à ça) que FileZilla ne sait pas "scripter" sauf la commande fzcli de FileZilla Pro, qui est payant.

Ce qui rendrait compte de l'erreur observée via FileZilla (mais pas de celle via la commande ftp qui elle utilise le client ftp Windows par défaut).

0
brupala Messages postés 112037 Date d'inscription   Statut Membre Dernière intervention   14 176
 

Salut,

ça n'existe pas la commande ftp

user toto mdp

c'est user toto c'est tout et il faut attendre le prompt pour le mot de passe

par exemple par une pause, puis le mot de passe .

je ne pense pas qu'on puisse faire du ftp avec un tel batch, il faut attendre le prompt et répondre ensuite.

Je faisais des choses comme ça autrefois mais avec des scripts Teraterm qui sont beaucoup plus puissants.

En plus de ça, on ne met JAMAIS un mot de passe en clair dans un script.


0
brucine Messages postés 21714 Date d'inscription   Statut Membre Dernière intervention   3 430
 

Bonjour,

Bien sûr que si, la réunion sur une seule ligne est utilisée après le commutateur
ftp -n qui réinitialise le mot de passe, voir par exemple ici en 19.
https://stackoverflow.com/questions/16158138/how-to-ftp-with-a-batch-file

Je n'aime pas la syntaxe et je préfère utiliser deux entrées distinctes, mais ce n'est pas pour ça qu'elle n'existe pas.

Si on met le mot de passe à la volée et qu'il y a d'autres utilisateurs potentiels du PC, on doit bien sûr soit détruire le script lui-même après utilisation, soit détruire le fichier de paramètres, voir par exemple là mais c'est une autre question:
https://www.robvanderwoude.com/ftp.php

0
brupala Messages postés 112037 Date d'inscription   Statut Membre Dernière intervention   14 176 > brucine Messages postés 21714 Date d'inscription   Statut Membre Dernière intervention  
 

D'un autre côté, il y a plus simple:

les commandes curl ou wget .

Curl est inclus à windows : https://www.ionos.fr/digitalguide/serveur/outils/debuter-dans-curl-sous-windows/ et wget s'y installe facilement.

Les deux prennent le format url:

rajouter le dossier de sortie par -o dans curl et -O dans wget et ça doit rouler mieux que ftp.

curl permet l'upload aussi.

0
xda_7822 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   > brupala Messages postés 112037 Date d'inscription   Statut Membre Dernière intervention  
 

Merci brupala,

J'ai testé curl (que je ne connaissait pas) cela smeble facile mais finalement j'arrive au même résultat : erreur curl: (67) Access denied: 503

0
brupala Messages postés 112037 Date d'inscription   Statut Membre Dernière intervention   14 176 > xda_7822 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

ah tu mets quoi comme ligne de commande ?

0
xda_7822 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   > brupala Messages postés 112037 Date d'inscription   Statut Membre Dernière intervention  
 

curl -k ftp://int-clt.TOTO.fr:21000 --user USERTOTO:MDP_TOTO

 je n'ai même pas mis de ligne pour récupérer le fichier. Je n'en suis qu'à la connexion

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xda_7822 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

Merci a tous et à toutes pour votre aide.

Le problème est résolu la commande FTP ne gérait pas le formats TLS (je crois avoir compris que cela venait de la vielle version de windows Serveur d'où etait lancé la commande.

J'ai finalement installé WinSCP et écrit ce batch tout simple qui fonctionne très bien

1 le .bat

del "c:\repertoire_de_destination\*.CSV" /Q

del "c:\toto\log.txt\*.CSV" /Q

"c:\program file (x86)\winscp\wincsp.exe\" /log="c:\toto\log.txt" /ini=nul /script="c:\toto\script.txt"

2 le fichier de commande script.TXT

open ftpes://nom_user:password@nom_serveur:N°du_port/

get /*.csv "c:\repertoire_de_destination\*.*"

exit

0
brupala Messages postés 112037 Date d'inscription   Statut Membre Dernière intervention   14 176
 

Oui,

winscp, je ne savais pas qu'il faisait du ftps, je suis toujours resté sur sftp (SSH), qui est bien plus pratique, mais il faut un serveur unix/linux, hélas windows ne gère pas à ma connaissance, bien qu'on ait un client ssh maintenant, pourquoi pas un serveur.

le client windows server, OK, il tourne sur quoi ton serveur ?

0