Problème récupération fichier FTP erreur 503 use Auth first
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
- Filezilla 503 use auth first
- Ftp 503 use auth first - Meilleures réponses
- Filezilla server 503 use auth first - Meilleures réponses
- Auth ccm - Télécharger - Divers Sécurité
- Salaat first - Télécharger - Histoire & Religion
- Salaat first pc - Télécharger - Agendas & Calendriers
- Gate first id - Forum Navigateur
- Toneo first avis ✓ - Forum Vos droits sur internet
5 réponses
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 ?
Et Filezilla, n'as pas un log d'erreur ?
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).
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.
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
D'un autre côté, il y a plus simple:
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionMerci 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
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 ?
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.
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".
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.