OVH Cloud OVH Cloud

Aide script FTP

8 réponses
Avatar
Sebastien
Bonjour,
je cherche à faire un script qui vas se connecter sur un serveur FTP (je
n'ai pas d'autre moyen que le FTP pour me connecter sur ce serveur )
et me lister les fichiers d'un répertoire.

J'ai fait un script du genre :

ftp -i -n monserveur << eof > /dev/null
quote user login
quote pass mot_de_passe
bin
prompt
ls -la liste.txt
close
bye
eof

Je devrais donc récupéré le résulat de mon ls dans le fichier liste.txt,
mais sa ne semble pas fonctionner.

Une idée ?

Y aurais t'il un autre groupe plus adapté pour poser ma question ?

Merci pour toute réponse.

8 réponses

Avatar
patpro ~ Patrick Proniewski
In article <45bdf5cd$0$26767$,
Sebastien wrote:

Bonjour,
je cherche à faire un script qui vas se connecter sur un serveur FTP (je
n'ai pas d'autre moyen que le FTP pour me connecter sur ce serveur )
et me lister les fichiers d'un répertoire.

J'ai fait un script du genre :

ftp -i -n monserveur << eof > /dev/null
quote user login
quote pass mot_de_passe
bin
prompt
ls -la liste.txt
close
bye
eof

Je devrais donc récupéré le résulat de mon ls dans le fichier liste.txt,
mais sa ne semble pas fonctionner.

Une idée ?



j'essayerai avec cURL si j'étais toi. De plus, je n'ai vraiment pas
l'impression que ton script fasse ce que tu pense...


patpro

--
http://www.patpro.net/

Avatar
Rakotomandimby Mihamina (R12y)
Sebastien wrote:

Une idée ?


Faire un mirroir local du site distant et tout faire en local. :-)

Avatar
Sebastien

j'essayerai avec cURL si j'étais toi. De plus, je n'ai vraiment pas
l'impression que ton script fasse ce que tu pense...


Merci, mais j'ai besoin que ce script soi standard, et fonctionne aussi
sur d'autre environnements Unix, qui n'on pas forcément cURL...

Avatar
ALain Montfranc
Sebastien a écrit
Bonjour,
je cherche à faire un script qui vas se connecter sur un serveur FTP (je
n'ai pas d'autre moyen que le FTP pour me connecter sur ce serveur ) et me
lister les fichiers d'un répertoire.

J'ai fait un script du genre :

ftp -i -n monserveur << eof > /dev/null
quote user login
quote pass mot_de_passe
bin
prompt
ls -la liste.txt
close
bye
eof

Je devrais donc récupéré le résulat de mon ls dans le fichier liste.txt, mais
sa ne semble pas fonctionner.

Une idée ?


il est possible que le stdin du ftp soit fermé trop tot, tuant ainsi le
ftp qui n'a pas fini de s'exécuter


Y aurais t'il un autre groupe plus adapté pour poser ma question ?



Il y a surtout des outils plus adaptés. Je te conseil soit un outil
faisant du ftp en ligne de commande (wget, etc...) ou, plus générique,
expect qui te permettra d'automatiser tout ce qui ce fait en interactif
(mode terminal) ou presque

Avatar
ALain Montfranc
Sebastien a écrit

j'essayerai avec cURL si j'étais toi. De plus, je n'ai vraiment pas
l'impression que ton script fasse ce que tu pense...


Merci, mais j'ai besoin que ce script soi standard, et fonctionne aussi sur
d'autre environnements Unix, qui n'on pas forcément cURL...


Tu as expect qui est largement diffusé

Ou alors un truc crad du style

( echo 'user userrname
echo ...

sleep 10000
) | ftp ...

Ca marche et faut tuer le sleep pour terminer


Avatar
Sebastien

Tu as expect qui est largement diffusé

Ou alors un truc crad du style

( echo 'user userrname
echo ...

sleep 10000
) | ftp ...

Ca marche et faut tuer le sleep pour terminer


Merci, je vais essayer de ce coté là.

Avatar
Rakotomandimby Mihamina (R12y)
Sebastien wrote:

Ou alors un truc crad du style
Merci, je vais essayer de ce coté là.



Je sais bien qu'il faut rester poli, donc tu as raison de remercier, mais un
truc aussi crad, il faut juste le garder pour _exemple_ et ne pas
l'appliquer.

Au niveau de la faisbilité de la chose, pense à un truc:
- tu ouvres une session (FTP) sur une machine distante
- tu veux récupérer la sortie standard dans un fichier sur une machine
locale.

Je ne l'ai jamais utilisé, mais comme dis alain, je crois que expect fait
ça. Mais alors de là à être certain qu'il est installé sur tous les Unices,
c'est pas gagné.


Avatar
antoine
Hello Sébastien,

Il faut créer un fichier dans la home de l'utilisateur comme
/home/sebastien/.netrc
Dans ce fichier texte du mets
machine ftp.monserveur.fr
login seb
password azerty
et tu n'oublie le chmod de protection (chmod 500 : à vérifier)

puis ftp < script-de-commandes-ftp

le srcipt ne contiendra que l'instruction open. Il ira chercher dans le
.netrc le login et le pot de masse.

Fait une recherche sur .netrc sur le web
Cordialement.

Bonjour,
je cherche à faire un script qui vas se connecter sur un serveur FTP (je
n'ai pas d'autre moyen que le FTP pour me connecter sur ce serveur ) et
me lister les fichiers d'un répertoire.

J'ai fait un script du genre :

ftp -i -n monserveur << eof > /dev/null
quote user login
quote pass mot_de_passe
bin
prompt
ls -la liste.txt
close
bye
eof

Je devrais donc récupéré le résulat de mon ls dans le fichier liste.txt,
mais sa ne semble pas fonctionner.

Une idée ?

Y aurais t'il un autre groupe plus adapté pour poser ma question ?

Merci pour toute réponse.