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

Fermé
xda_7822 Messages postés 7 Date d'inscription vendredi 15 décembre 2023 Statut Membre Dernière intervention 15 décembre 2023 - 15 déc. 2023 à 09:55
brupala Messages postés 110677 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 16 décembre 2024 - 15 déc. 2023 à 20:08

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 20026 Date d'inscription samedi 10 juillet 2010 Statut Membre Dernière intervention 15 décembre 2024 6 124
15 déc. 2023 à 10:46

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 18271 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 décembre 2024 2 700
15 déc. 2023 à 11:35

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 vendredi 15 décembre 2023 Statut Membre Dernière intervention 15 décembre 2023 > brucine Messages postés 18271 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 décembre 2024
15 déc. 2023 à 11:50

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 18271 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 décembre 2024 2 700 > xda_7822 Messages postés 7 Date d'inscription vendredi 15 décembre 2023 Statut Membre Dernière intervention 15 décembre 2023
15 déc. 2023 à 13:45

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 vendredi 15 décembre 2023 Statut Membre Dernière intervention 15 décembre 2023
15 déc. 2023 à 11:04

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

0
contrariness Messages postés 20026 Date d'inscription samedi 10 juillet 2010 Statut Membre Dernière intervention 15 décembre 2024 6 124
15 déc. 2023 à 11:43

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

0
xda_7822 Messages postés 7 Date d'inscription vendredi 15 décembre 2023 Statut Membre Dernière intervention 15 décembre 2023
15 déc. 2023 à 11:52

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 18271 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 décembre 2024 2 700
15 déc. 2023 à 11:53

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 110677 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 16 décembre 2024 13 865
Modifié le 15 déc. 2023 à 13:31

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 18271 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 décembre 2024 2 700
15 déc. 2023 à 13:33

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 110677 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 16 décembre 2024 13 865 > brucine Messages postés 18271 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 décembre 2024
Modifié le 15 déc. 2023 à 14:27

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 vendredi 15 décembre 2023 Statut Membre Dernière intervention 15 décembre 2023 > brupala Messages postés 110677 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 16 décembre 2024
15 déc. 2023 à 15:37

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 110677 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 16 décembre 2024 13 865 > xda_7822 Messages postés 7 Date d'inscription vendredi 15 décembre 2023 Statut Membre Dernière intervention 15 décembre 2023
15 déc. 2023 à 15:59

ah tu mets quoi comme ligne de commande ?

0
xda_7822 Messages postés 7 Date d'inscription vendredi 15 décembre 2023 Statut Membre Dernière intervention 15 décembre 2023 > brupala Messages postés 110677 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 16 décembre 2024
15 déc. 2023 à 16:02

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 vendredi 15 décembre 2023 Statut Membre Dernière intervention 15 décembre 2023
15 déc. 2023 à 19:45

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 110677 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 16 décembre 2024 13 865
15 déc. 2023 à 20:08

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