Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/08/2013, à 18:29

Batsolor

Commande FTP : lire les informations depuis un fichier

Bonjour amis Linuxiens.

Je souhaitais utiliser la commande FTP dans un contexte particulier. J'ai enregistré des commandes de l'interpréteur de commandes FTP dans un fichier externe donc voici le contenu :

Mon fichier ftp_test.txt a écrit :

open ftp.domaine.fr 21
monuser
monmdp
binary
get dossier1/dossier2/image.png image.png
close
quit

Comme vous pouvez le constater, ces lignes demandent de se connecter à mon compte FTP pour y télécharger une image dans le dossier courant (pour info, c'est pour un programme en C++).

Je souhaiterais n'avoir à taper qu'une seule ligne dans la console pour faire tout ça : taper la commande FTP et lire les informations depuis le fichier, pour qu'il se connecte et aille chercher mon image, un truc du genre "ftp < ftp_test.txt" mais évidemment, ce n'est celle-ci qui correspond.

Si ça se trouve je suis passé à côté de quelque chose de basique, peut-être que la réponse est évidente pour vous mais malgré mes recherches sur la doc et sur le net, je n'ai rien trouvé. Je n'ai peut-être pas cherché au bon endroit...

Si je ne suis pas très clair je m'en excuse, j'apporterai plus de précisions au besoin. Si vous pouvez m'aider à résoudre mon problème je vous en serai très reconnaissant.

Merci et bonne journée à vous !

Dernière modification par Batsolor (Le 25/08/2013, à 18:38)

Hors ligne

#2 Le 25/08/2013, à 19:02

pingouinux

Re : Commande FTP : lire les informations depuis un fichier

Bonsoir,
Je ne suis pas certain, mais essaye ceci

open ftp.domaine.fr 21 <<<"monuser
monmdp
binary
get dossier1/dossier2/image.png image.png
close
quit
"

Hors ligne

#3 Le 25/08/2013, à 19:07

Batsolor

Re : Commande FTP : lire les informations depuis un fichier

Ca, c'est le contnu du fichier ? (ou j'ai pas compris)

Ce que je souhaiterais faire c'est spécifier le nom du fichier en argument de la commande FTP pour tout faire en tapant cette ligne devant l'invite de commande.

Hors ligne

#4 Le 25/08/2013, à 19:14

pingouinux

Re : Commande FTP : lire les informations depuis un fichier

Ce que je t'indique en #2 est le contenu de ton fichier ftp_test.txt.
Je pense que tu dois pouvoir faire ceci, par exemple

$ cat ftp_test.txt
#!/bin/bash
open ftp.domaine.fr 21 <<<"monuser
monmdp
binary
get $1 image.png
close
quit
"

à appeler ainsi

./ftp_test.txt dossier1/dossier2/image.png

$1 est le premier argument du script

Hors ligne

#5 Le 25/08/2013, à 19:40

Batsolor

Re : Commande FTP : lire les informations depuis un fichier

./ftp_test.txt: ligne 1: $ : commande introuvable                                                                                                                                  
Impossible d'obtenir un descripteur de fichier se référant à la console     

Voici le résultat que j'obtiens en faisant ceci. J'ai essayé de modifier, mais quoi qu'il advienne j'ai toujours le second message qui s'affiche, et le fichier désiré ne se télécharge pas. Est-ce que j'aurais raté un passage ou pas compris un truc ? xD

Mais l'idée est bonne, merci !

Hors ligne

#6 Le 25/08/2013, à 20:45

pingouinux

Re : Commande FTP : lire les informations depuis un fichier

Ce que je t'ai suggéré n'est donc pas correct. Je n'ai malheureusement pas d'autre idée. Désolé sad

Hors ligne

#7 Le 25/08/2013, à 20:47

Batsolor

Re : Commande FTP : lire les informations depuis un fichier

Arf... Ben tant pis, mais merci quand même !

Si quelqu'un a une autre piste pendant que je continue à chercher, je l'invite à venir m'en faire part. Merci d'avance wink

Hors ligne

#8 Le 25/08/2013, à 21:14

Watael

Re : Commande FTP : lire les informations depuis un fichier

salut,

./ftp_test.txt: ligne 1: $ : commande introuvable

la première ligne du code fourni par pingouinux ne doit pas figurer dans le script.
le shebang (#!/bin/bash) doit être sur la première ligne.

ça devrait être

#!/bin/bash

ftp <<<"open ftp.domaine.fr 21
monuser
monmdp
binary
get $1 image.png
close
quit"

en gros. Pour le détail, voir man ftp.

ps: mettre une extension .txt à un script ? sad

Dernière modification par Watael (Le 25/08/2013, à 21:15)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 25/08/2013, à 21:46

Batsolor

Re : Commande FTP : lire les informations depuis un fichier

Merci ! Lorsque je modifie le fichier puis exécute la commande citée plus haut, j'obtiens ceci dans la console :

Password:Name (ftp.domaine.fr:batsolor)

Avec un champ à taper. Je rentre mon mot de passe et malgré un "?Invalid command" mon fichier arrive bien. Serait-ce possible d'avoir un résultat similaire sans devoir taper le mot de passe à chaque passage ?

Notez que je ne fais que télécharger un fichier, jamais je n'y touche. J'ai tenté de me connecter en anonyme (anonymous) sans mot de passe et peu importe ce que je peux taper j'ai une flopée d'erreurs et l'image ne vient bien sûr pas.

Voici mon erreur quand le mot de passes est incorrect (évident, mais on ne sait jamais) :

Login authentication failed
Login failed.
?Invalid command
You aren't logged in
ftp: bind: Address already in use

PS : Non évidemment, je ne vais pas proposer un script au format .txt une fois l'application développée xD Ceci n'est qu'un test pour la console.

Hors ligne

#10 Le 25/08/2013, à 22:01

Watael

Re : Commande FTP : lire les informations depuis un fichier

c'est pas à nous de (re)lire le man de ftp, et de chercher des exemples sur le net hmm

ftp ftp.domaine.fr 21 <<<"user tonNom tonMot2passe
binary
get image.png
quit"

peut-être.

Dernière modification par Watael (Le 25/08/2013, à 22:02)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#11 Le 25/08/2013, à 23:02

Batsolor

Re : Commande FTP : lire les informations depuis un fichier

Oui merci je n'avais pas vu ce passage ! (pourtant j'avais bien fouillé, mais mes problèmes de vue ont eu raison de moi >.<)

Bref, je m'excuse ! Cependant je n'explique toujours pas pourquoi il me redemande le mot de passe (ligne citée plus haut) alors qu'il est déjà spécifié dans le fichier. En fait je souhaiterais ne pas avoir à le saisir à chaque fois (le téléchargement est sensé être automatique dans le programme, l'utilisateur ne va pas taper un mot de passe). Mais le pire c'est que je peux taper n'importe quoi, même juste entrée, et j'ai tout de même l'image (et ça m'affiche un message d'erreur de connexion dans tous les cas).

Y'a-t-il une solution ou c'est juste tout bonnement impossible ?

Dernière modification par Batsolor (Le 25/08/2013, à 23:03)

Hors ligne

#12 Le 25/08/2013, à 23:16

Watael

Re : Commande FTP : lire les informations depuis un fichier

Je ne comprend pas : tu dis que c'est pour un programme en C++
C++, en chargeant la bibliothèque ad'hoc, permet de se connecter en FTP.
Repasser par le shell (appelé depuis ton programme) n'a pas de sens.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#13 Le 25/08/2013, à 23:45

Batsolor

Re : Commande FTP : lire les informations depuis un fichier

Ben ce sont justement mes recherches qui m'ont conduit à ce moyen de se connecter à un FTP, parce qu'au début ça me paraissait assez simple xD

Mais j'ai vu que LibCurl le faisait aussi, et apparemment sans passer par la console. J'hésite encore, mais je pense que je vais me tourner vers cette optique.

Hors ligne