OVH Cloud OVH Cloud

recuperation sur ftp

8 réponses
Avatar
Booba
Bonjour à tous,
je viens chercher un petit renseignement sur une récupération de fichiers
textes sur un serveur ftp via un scrpit batch.
Le probleme c'est que si c'est possible je ne connait pas la synthaxe me
permettant d'etablir la connexion, de me deplacer dans l'arborescence
etc....
Quelqu'un pourrait il m'aiguiller.
En vous remerciant d'avance pour l'aide que vous pourriez m'apporter.
Cordialemenrt.
@lesc

8 réponses

Avatar
Guillaume Clauzon
Booba wrote:
Bonjour à tous,
je viens chercher un petit renseignement sur une récupération de fichiers
textes sur un serveur ftp via un scrpit batch.
Le probleme c'est que si c'est possible je ne connait pas la synthaxe me
permettant d'etablir la connexion, de me deplacer dans l'arborescence
etc....
Quelqu'un pourrait il m'aiguiller.
En vous remerciant d'avance pour l'aide que vous pourriez m'apporter.
Cordialemenrt.
@lesc




Voici ma solution (qui n'est surement pas la meilleure ;p)

Fichier batch :

ftp -i -s:FICHIER_AVEC_CMD_FTP

FiCHIER_AVEC_CMD_FTP :

open mon_serveur_ftp
mon_login
mon_mdp
cd mon_rep
get mon_fichier
quit


--
hotplug at pornbsd dot org

Avatar
Jean-Claude BELLAMY
Dans le message news:OEKNj$% ,
Booba s'est ainsi exprimé:

je viens chercher un petit renseignement sur une récupération de
fichiers textes sur un serveur ftp via un scrpit batch.
Le probleme c'est que si c'est possible je ne connait pas la synthaxe
me permettant d'etablir la connexion, de me deplacer dans
l'arborescence etc....


Moi non plus je ne connaissais pas la syntaxe, un jour.
Et dans ce cas, comment m'en suis-je sorti tout seul.... ?

... j'ai utilisé L'AIDE EN LIGNE !

A quoi çà sert que des développeurs se soient décarcassés pour la concevoir
?!!

Pour avoir l'aide globale sur la commande :
-----------------------------------------
C:>ftp -?

Transfère des fichiers vers et depuis un ordinateur avec un service
de serveur FTP activé (quelquefois appelé un démon : daemon).
Ftp peut être utilisé interactivement.

FTP [-v] [-d] [-i] [-n] [-g] [-s:NomFich] [-a] [-w:TailleFen] [-A] [hôte]

-v Supprime l'affichage des réponses du serveur distant.
-n Supprime la connexion automatique au démarrage.
-i Désactive l'invite s'il y a plusieurs fichiers à
transférer.
-d Active le débogage.
-g Désactive le globbing du nom de fichier (cf. commande
GLOB).
-s:NomFich Spécifie un fichier texte contenant les commandes FTP ; ces
commandes seront automatiquement exécutées après le
démarrage de FTP.
-a Utilise n'importe quelle interface locale pour la liaison
de
la connexion des données.
-A Connexion en tant qu'anonyme.
-w:TailleTamp Remplace la taille par défaut du tampon de transfert de
4096.
hôte Spécifie le nom de l'hôte ou l'adresse IP de l'hôte distant
auquel se connecter.

Notes :
- Les commandes mget et mput acceptent o/n/q pour oui/non/quitter.
- Utilisez Ctrl+C pour interrompre les commandes.


Et pour avoir la liste des commandes FTP :
------------------------------------------
C:>ftp
ftp> ?
Les commandes peuvent être abrégées. Ces commandes sont :

! delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir

Et pour avoir l'aide sur une commande FTP :
------------------------------------------
ftp> ? open
open Connexion au tftp distant
ftp> ? user
user Envoie les informations du nouvel utilisateur
ftp> ? cd
cd Modifie le dossier de travail distant
ftp> ? mget
mget Récupère plusieurs fichiers
ftp> ? pwd
pwd Affiche le dossier de travail sur l'ordinateur distant
ftp> ? prompt
prompt Force l'invite interactive sur plusieurs commandes
ftp> ? bye
bye Termine la session ftp et quitte
....

Donc pour effectuer des transferts FTP depuis un batch, il faut :

1) Créer un fichier texte quelconque dans lequel on insère
toutes les commandes FTP voulues
2) Lancer FTP depuis le batch en lui passant en paramètre
ce fichier de commandes.

Exemple :
fichier "k:scriptscmdftp.txt"

But :
se connecter à ftp.monsite.net
envoyer les fichiers
n:monsitelocaltest.html
n:monsitelocalessai.html
vers le répertoire /www
envoyer tous les fichiers .jpg
de n:monsitelocalimages
vers le répertoire /www/images
recevoir tous les fichiers .log
du répertoire /log
vers le dossier m:logfiles

-------------------
open ftp.monsite.net
mon-nom-de-compte
mon-mot-de-passe
cd /www
lcd n:monsitelocal
prompt
ascii
pwd
cd demo
lcd demo
put test.html
put essai.html
cd images
lcd images
bin
mput *.jpg
cd /log
lcd m:logfiles
asc
mget *.log
bye
-------------------


fichier "Mise-a-jour-FTP.bat"
-------------------
@echo off
...
ftp -s:"k:scriptscmdftp.txt"
...


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *


Avatar
Booba
Bonjour
et merci pour le coup de main je viens juste de voir l'option -s dans l'aide
ftp....
Mea culpa j'aurai du regarder avant de poser :((
En tt cas merci bcp.
Cordialement
@lesc
"Guillaume Clauzon" a écrit dans le message de
news: 40eba96e$0$11898$
Booba wrote:
Bonjour à tous,
je viens chercher un petit renseignement sur une récupération de
fichiers


textes sur un serveur ftp via un scrpit batch.
Le probleme c'est que si c'est possible je ne connait pas la synthaxe me
permettant d'etablir la connexion, de me deplacer dans l'arborescence
etc....
Quelqu'un pourrait il m'aiguiller.
En vous remerciant d'avance pour l'aide que vous pourriez m'apporter.
Cordialemenrt.
@lesc




Voici ma solution (qui n'est surement pas la meilleure ;p)

Fichier batch :

ftp -i -s:FICHIER_AVEC_CMD_FTP

FiCHIER_AVEC_CMD_FTP :

open mon_serveur_ftp
mon_login
mon_mdp
cd mon_rep
get mon_fichier
quit


--
hotplug at pornbsd dot org



Avatar
Booba
Ok merci pour cette réponse complète maitre Jedi.
Votre aide est arrivé avant mes excuses pour n'avoir pas regarder l'aide en
ligne so.....
Cordialement.
@lesc
"Jean-Claude BELLAMY" a écrit dans le
message de news: #2N7gk$
Dans le message news:OEKNj$% ,
Booba s'est ainsi exprimé:

je viens chercher un petit renseignement sur une récupération de
fichiers textes sur un serveur ftp via un scrpit batch.
Le probleme c'est que si c'est possible je ne connait pas la synthaxe
me permettant d'etablir la connexion, de me deplacer dans
l'arborescence etc....


Moi non plus je ne connaissais pas la syntaxe, un jour.
Et dans ce cas, comment m'en suis-je sorti tout seul.... ?

... j'ai utilisé L'AIDE EN LIGNE !

A quoi çà sert que des développeurs se soient décarcassés pour la
concevoir

?!!

Pour avoir l'aide globale sur la commande :
-----------------------------------------
C:>ftp -?

Transfère des fichiers vers et depuis un ordinateur avec un service
de serveur FTP activé (quelquefois appelé un démon : daemon).
Ftp peut être utilisé interactivement.

FTP [-v] [-d] [-i] [-n] [-g] [-s:NomFich] [-a] [-w:TailleFen] [-A] [hôte]

-v Supprime l'affichage des réponses du serveur distant.
-n Supprime la connexion automatique au démarrage.
-i Désactive l'invite s'il y a plusieurs fichiers à
transférer.
-d Active le débogage.
-g Désactive le globbing du nom de fichier (cf. commande
GLOB).
-s:NomFich Spécifie un fichier texte contenant les commandes FTP ;
ces

commandes seront automatiquement exécutées après le
démarrage de FTP.
-a Utilise n'importe quelle interface locale pour la liaison
de
la connexion des données.
-A Connexion en tant qu'anonyme.
-w:TailleTamp Remplace la taille par défaut du tampon de transfert de
4096.
hôte Spécifie le nom de l'hôte ou l'adresse IP de l'hôte
distant

auquel se connecter.

Notes :
- Les commandes mget et mput acceptent o/n/q pour oui/non/quitter.
- Utilisez Ctrl+C pour interrompre les commandes.


Et pour avoir la liste des commandes FTP :
------------------------------------------
C:>ftp
ftp> ?
Les commandes peuvent être abrégées. Ces commandes sont :

! delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir

Et pour avoir l'aide sur une commande FTP :
------------------------------------------
ftp> ? open
open Connexion au tftp distant
ftp> ? user
user Envoie les informations du nouvel utilisateur
ftp> ? cd
cd Modifie le dossier de travail distant
ftp> ? mget
mget Récupère plusieurs fichiers
ftp> ? pwd
pwd Affiche le dossier de travail sur l'ordinateur distant
ftp> ? prompt
prompt Force l'invite interactive sur plusieurs commandes
ftp> ? bye
bye Termine la session ftp et quitte
....

Donc pour effectuer des transferts FTP depuis un batch, il faut :

1) Créer un fichier texte quelconque dans lequel on insère
toutes les commandes FTP voulues
2) Lancer FTP depuis le batch en lui passant en paramètre
ce fichier de commandes.

Exemple :
fichier "k:scriptscmdftp.txt"

But :
se connecter à ftp.monsite.net
envoyer les fichiers
n:monsitelocaltest.html
n:monsitelocalessai.html
vers le répertoire /www
envoyer tous les fichiers .jpg
de n:monsitelocalimages
vers le répertoire /www/images
recevoir tous les fichiers .log
du répertoire /log
vers le dossier m:logfiles

-------------------
open ftp.monsite.net
mon-nom-de-compte
mon-mot-de-passe
cd /www
lcd n:monsitelocal
prompt
ascii
pwd
cd demo
lcd demo
put test.html
put essai.html
cd images
lcd images
bin
mput *.jpg
cd /log
lcd m:logfiles
asc
mget *.log
bye
-------------------


fichier "Mise-a-jour-FTP.bat"
-------------------
@echo off
...
ftp -s:"k:scriptscmdftp.txt"
...


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *






Avatar
Guillaume Clauzon
Booba wrote:

Re,
bon tester sur NT4 ou win98, mon script ne fonctionne pas
fichier ftp.bat
ftp -s:"d:ftpftp.txt"

Et dans d:ftp j'ai ftp.txt
open 192.168.52.1
ftpuser
motdepasse
lcd d:ftp
get test.txt
bye

Or j'ai : commande ou nom de fichier incorrect, j'ai pourtant tester des
synthaxes differents....Comprens pô là...
Si une ame charitable pouvait m'aider...
Bien cordialement.
@lesc



Si tu as acces au log cote serveur ftp, tu pourrais mieux voir
ce qui se passe, genre voir quelle commande a echoue et cie.



--
hotplug at pornbsd dot org

Avatar
Jean-Claude BELLAMY
Dans le message news:eRG6$ ,
Booba s'est ainsi exprimé:

Re,
bon tester sur NT4 ou win98, mon script ne fonctionne pas
fichier ftp.bat


TRÈS TRÈS MAUVAIS de donner à un batch le même nom que celui d'un
exécutable, et qui, de plus, est utilisé dans le script.
On ne fait pas mieux pour se mélanger les octets, et surtout pour déclencher
une boucle de la mort qui tue ! ;-)

Car ton batch, qui s'appelle "ftp.bat", commence par une commande "ftp"
Or comme l'interpréteur de commandes est très flemmard, il cherche le
programme "le plus proche" qui s'appelle "ftp"
Et il trouve donc ... le script "ftp.bat" !
("FTP.EXE", situé dans %systemroot%system32, est bien trop loin!)

Il l'exécute, ce qui lance ... le script, ce qui lance ... le script, ce
qui......
"On tourne en rond, merde, on tourne en rond, merde, on tourne en rond!"
(pcc Bernard Blier dans "Le Grand Blond ...")

Pour t'en rendre compte, tu n'a qu'à insérer de ton batch une ligne telle
que
echo Lancement de FTP

Et lance ton batch, tu ne vas pas être déçu du voyage ! ;-)
Excellent pour provoquer un débordement de pile ..
( pour arrêter : appuyer sur CTRL C)

Commence donc par renommer ton script en "runftp.bat", "monftp.bat", ...,
mais pas "ftp.bat" !


ftp -s:"d:ftpftp.txt"

Et dans d:ftp j'ai ftp.txt
open 192.168.52.1
ftpuser
motdepasse
lcd d:ftp
get test.txt
bye
C'est correct

(sous réserve que le fichier "test.txt" soit bien dans le répertoire par
défaut du serveur)

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *


Avatar
Booba
Re,
bon tester sur NT4 ou win98, mon script ne fonctionne pas
fichier ftp.bat
ftp -s:"d:ftpftp.txt"

Et dans d:ftp j'ai ftp.txt
open 192.168.52.1
ftpuser
motdepasse
lcd d:ftp
get test.txt
bye

Or j'ai : commande ou nom de fichier incorrect, j'ai pourtant tester des
synthaxes differents....Comprens pô là...
Si une ame charitable pouvait m'aider...
Bien cordialement.
@lesc



"Booba" a écrit dans le message de news:
OIDQlv$
Ok merci pour cette réponse complète maitre Jedi.
Votre aide est arrivé avant mes excuses pour n'avoir pas regarder l'aide
en

ligne so.....
Cordialement.
@lesc
"Jean-Claude BELLAMY" a écrit dans le
message de news: #2N7gk$
Dans le message news:OEKNj$% ,
Booba s'est ainsi exprimé:

je viens chercher un petit renseignement sur une récupération de
fichiers textes sur un serveur ftp via un scrpit batch.
Le probleme c'est que si c'est possible je ne connait pas la synthaxe
me permettant d'etablir la connexion, de me deplacer dans
l'arborescence etc....


Moi non plus je ne connaissais pas la syntaxe, un jour.
Et dans ce cas, comment m'en suis-je sorti tout seul.... ?

... j'ai utilisé L'AIDE EN LIGNE !

A quoi çà sert que des développeurs se soient décarcassés pour la
concevoir

?!!

Pour avoir l'aide globale sur la commande :
-----------------------------------------
C:>ftp -?

Transfère des fichiers vers et depuis un ordinateur avec un service
de serveur FTP activé (quelquefois appelé un démon : daemon).
Ftp peut être utilisé interactivement.

FTP [-v] [-d] [-i] [-n] [-g] [-s:NomFich] [-a] [-w:TailleFen] [-A]
[hôte]



-v Supprime l'affichage des réponses du serveur distant.
-n Supprime la connexion automatique au démarrage.
-i Désactive l'invite s'il y a plusieurs fichiers à
transférer.
-d Active le débogage.
-g Désactive le globbing du nom de fichier (cf. commande
GLOB).
-s:NomFich Spécifie un fichier texte contenant les commandes FTP ;
ces

commandes seront automatiquement exécutées après le
démarrage de FTP.
-a Utilise n'importe quelle interface locale pour la
liaison


de
la connexion des données.
-A Connexion en tant qu'anonyme.
-w:TailleTamp Remplace la taille par défaut du tampon de transfert de
4096.
hôte Spécifie le nom de l'hôte ou l'adresse IP de l'hôte
distant

auquel se connecter.

Notes :
- Les commandes mget et mput acceptent o/n/q pour oui/non/quitter.
- Utilisez Ctrl+C pour interrompre les commandes.


Et pour avoir la liste des commandes FTP :
------------------------------------------
C:>ftp
ftp> ?
Les commandes peuvent être abrégées. Ces commandes sont :

! delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir

Et pour avoir l'aide sur une commande FTP :
------------------------------------------
ftp> ? open
open Connexion au tftp distant
ftp> ? user
user Envoie les informations du nouvel utilisateur
ftp> ? cd
cd Modifie le dossier de travail distant
ftp> ? mget
mget Récupère plusieurs fichiers
ftp> ? pwd
pwd Affiche le dossier de travail sur l'ordinateur distant
ftp> ? prompt
prompt Force l'invite interactive sur plusieurs commandes
ftp> ? bye
bye Termine la session ftp et quitte
....

Donc pour effectuer des transferts FTP depuis un batch, il faut :

1) Créer un fichier texte quelconque dans lequel on insère
toutes les commandes FTP voulues
2) Lancer FTP depuis le batch en lui passant en paramètre
ce fichier de commandes.

Exemple :
fichier "k:scriptscmdftp.txt"

But :
se connecter à ftp.monsite.net
envoyer les fichiers
n:monsitelocaltest.html
n:monsitelocalessai.html
vers le répertoire /www
envoyer tous les fichiers .jpg
de n:monsitelocalimages
vers le répertoire /www/images
recevoir tous les fichiers .log
du répertoire /log
vers le dossier m:logfiles

-------------------
open ftp.monsite.net
mon-nom-de-compte
mon-mot-de-passe
cd /www
lcd n:monsitelocal
prompt
ascii
pwd
cd demo
lcd demo
put test.html
put essai.html
cd images
lcd images
bin
mput *.jpg
cd /log
lcd m:logfiles
asc
mget *.log
bye
-------------------


fichier "Mise-a-jour-FTP.bat"
-------------------
@echo off
...
ftp -s:"k:scriptscmdftp.txt"
...


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *










Avatar
Booba
Bon bah merci pour tout....
@ charge de revanche....
Bien cordialement.
@lesc
"Jean-Claude BELLAMY" a écrit dans le
message de news:
Dans le message news:eRG6$ ,
Booba s'est ainsi exprimé:

Re,
bon tester sur NT4 ou win98, mon script ne fonctionne pas
fichier ftp.bat


TRÈS TRÈS MAUVAIS de donner à un batch le même nom que celui d'un
exécutable, et qui, de plus, est utilisé dans le script.
On ne fait pas mieux pour se mélanger les octets, et surtout pour
déclencher

une boucle de la mort qui tue ! ;-)

Car ton batch, qui s'appelle "ftp.bat", commence par une commande "ftp"
Or comme l'interpréteur de commandes est très flemmard, il cherche le
programme "le plus proche" qui s'appelle "ftp"
Et il trouve donc ... le script "ftp.bat" !
("FTP.EXE", situé dans %systemroot%system32, est bien trop loin!)

Il l'exécute, ce qui lance ... le script, ce qui lance ... le script, ce
qui......
"On tourne en rond, merde, on tourne en rond, merde, on tourne en rond!"
(pcc Bernard Blier dans "Le Grand Blond ...")

Pour t'en rendre compte, tu n'a qu'à insérer de ton batch une ligne telle
que
echo Lancement de FTP

Et lance ton batch, tu ne vas pas être déçu du voyage ! ;-)
Excellent pour provoquer un débordement de pile ..
( pour arrêter : appuyer sur CTRL C)

Commence donc par renommer ton script en "runftp.bat", "monftp.bat", ...,
mais pas "ftp.bat" !


ftp -s:"d:ftpftp.txt"

Et dans d:ftp j'ai ftp.txt
open 192.168.52.1
ftpuser
motdepasse
lcd d:ftp
get test.txt
bye
C'est correct

(sous réserve que le fichier "test.txt" soit bien dans le répertoire par
défaut du serveur)

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *