[FTP] Comment télécharger puis supprimer les fichiers

Comment télécharger puis supprimer les fichiers [FTP] - Shell/Batch - Programmation

Marsh Posté le 29-07-2005 à 16:14:39    

Hello, bonjour !
 
Je suis bloqué  :sweat: :
 
Sur un serveur FTP, j'ai un répéertoire avec des centaines de fichiers.
J'aimerai faire un script qui télécharges un fichier puis qui le supprime et ainsi de suite.
 
Quelqu'un aurait une idée ?


---------------
GaazzzzZZZZZZZZ
Reply

Marsh Posté le 29-07-2005 à 16:14:39   

Reply

Marsh Posté le 29-07-2005 à 16:57:27    

ftp host <<EOF
get abc
delete abc
get def
delete def
EOF


Et ainsi de suite. Ca ne marchera que si tu n'as pas besoin de t'autentifier interractivement, c'est a dire si tu a un fichier .netrc sur ta machine locale.


Message édité par matafan le 29-07-2005 à 16:57:42
Reply

Marsh Posté le 29-07-2005 à 16:59:50    

Ton exemple serait parfait si je savais à l'avance le nom des fichiers, mais ce n'est pas le cas :/


---------------
GaazzzzZZZZZZZZ
Reply

Marsh Posté le 29-07-2005 à 17:41:37    

Et pourquoi ne pas tout prendre avec mget puis tout supprimer avec mdelete ? En utilisant prompt pour éviter les questions bien sûr :)
 

Code :
  1. ftp host
  2. user/pass
  3. cd /path-orig
  4. lcd /path-dest
  5. prompt
  6. mget *
  7. mdelete *
  8. bye


Message édité par Deadlock le 29-07-2005 à 17:43:56

---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 29-07-2005 à 17:43:48    

Because entre temps, je dois renommer le fichier une fois qu'il est copié sur l'autre serveur.
Quel projet de ....


---------------
GaazzzzZZZZZZZZ
Reply

Marsh Posté le 29-07-2005 à 17:46:01    

Hmm ok. Le rename est "global" sur une même pattern (ajouter -abc au nom des fichiers) ou différent pour chaque fichier ?
La machine source possède quel shell/OS (bash/cygwin) ?


Message édité par Deadlock le 29-07-2005 à 17:46:47

---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 29-07-2005 à 18:24:31    

Soit tu as un vrai shell (tu es sous *nix quoi) et ça doit se faire tout seul, soit t'es sous windows et dans ce cas il faut que tu fasses appel à des langages de script externes (c'est très facile à faire en python, par exemple, ton truc), parce que je doute que "ftp" soit bien interfaçable avec batch


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 29-07-2005 à 18:30:31    

masklinn a écrit :

parce que je doute que "ftp" soit bien interfaçable avec batch


Ca l'est, mais c'est bouseux et il faut la pelle à clous.
 
[:pingouino]  


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 29-07-2005 à 18:57:19    

Si tu tiens à faire en batch, une méthode serait de le faire en deux connexions : une pour récupérer la liste des fichiers, puis tu génères le script FTP pour la deuxième dans laquelle tu fais tous les récup, renommages et suppressions.

Reply

Marsh Posté le 29-07-2005 à 19:00:14    

wackevat a écrit :

Si tu tiens à faire en batch, une méthode serait de le faire en deux connexions : une pour récupérer la liste des fichiers, puis tu génères le script FTP pour la deuxième dans laquelle tu fais tous les récup, renommages et suppressions.


Je conseillerais plutôt de laisser tomber et de faire autrement. DOS btch + FTP = infection.
 
[:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 29-07-2005 à 19:00:14   

Reply

Marsh Posté le 29-07-2005 à 19:17:17    

:lol:
 
Chacun fait ce qu'il veut. C'est une idée aux cas où il n'aurait pas d'autres choix.

Reply

Marsh Posté le 29-07-2005 à 19:22:42    

:o


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 29-07-2005 à 19:44:39    

sircam a écrit :

Ca l'est, mais c'est bouseux et il faut la pelle à clous.
 
[:pingouino]


Ben putain, ça m'impressionne que ça le soit. Le principe est de générer des scripts via batch et de les dumper dans ftp via un truc genre ftp -s? [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 29-07-2005 à 19:46:56    

Beh, quand tu vois comment un DOS batch un peu avancé est torché, et quand tu essayes d'utiliser FTP sous Win command-line avec fichier d'input...
 
[:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 29-07-2005 à 20:05:54    

Utilses la commande "expect", qui est justement faite pour automatiser les sessions interactives.
 
Edit : tu peux aussi utiliser rsh/rcp si le serveur est une machine unix.


Message édité par matafan le 29-07-2005 à 20:06:49
Reply

Marsh Posté le 31-07-2005 à 09:46:39    

si sous dos tu peux utiliser n'importe quel client ftp (sauf le dos)
la methode consisterait a generer un fichier de commandes de maniere dynamique et d'envoyer ce fichier en parametre a ton client ftp.
par exemple avec psftp:
 
1) tu construit ton fichier commandes.txt (a partir d'un .bat ou autre)
 

Code :
  1. get ....
  2. delete ...
  3. ...
  4. bye


 
ensuite tu lances ton client ftp (avec un .bat):
 

Code :
  1. "c:\Chemin\psftp" ipduserveurftp -l user -pw password -b "c:\chemin\commandes.txt"

 
 
si c'est sous Linux/Unix c'est encoe plus simple:
 
depuis un petit script shell tu peux faire :

Code :
  1. #ici ton script shell de construction de tes noms de fichiers $fic1 et $fic2 par exemple
  2. /usr/bin/ftp -nv adresseftp <<SCRIPT
  3. quote USER user
  4. quote PASS password
  5. binary
  6. put $fic1
  7. delete $fic2
  8. bye
  9. SCRIPT


Message édité par betsamee le 31-07-2005 à 09:47:58
Reply

Marsh Posté le 31-07-2005 à 10:06:39    

betsamee a écrit :

la methode consisterait a generer un fichier de commandes de maniere dynamique


En DOS batch, c'est mortel, avouons-le.   [:pingouino]  


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 31-07-2005 à 10:16:56    

en dos batch c'est la mort (mais faisable)
mais rien ne l'empeche d'utiliser vbs
 

Reply

Marsh Posté le 31-07-2005 à 10:25:56    

betsamee a écrit :

en dos batch c'est la mort (mais faisable)
mais rien ne l'empeche d'utiliser vbs


Ce qui, finalement, nous éloigne fort de la combinaison client FTP de DOS et DOS batch, et ce n'est pas plus mal.
 
En fait, il pourrait très bien faire ça en Perl ou en Python.   [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 31-07-2005 à 10:38:45    

avec le client ftp de DOS c'est a mon avis carrement impossible

Reply

Marsh Posté le 01-08-2005 à 10:34:48    

En fait, je pensais au batch car c'esr le seul langage que je connais.
Je suis admin réseau, et le vbs ou python j'y connais absolument rien.
Mais merci pour vos piste, je vais continuer mes recherches.


---------------
GaazzzzZZZZZZZZ
Reply

Marsh Posté le 01-08-2005 à 10:37:42    

Un conseil, si tu es admin : mange du Perl ou du Python, tu ne le regreteras pas. [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 01-08-2005 à 10:39:58    

Ca roule ....


---------------
GaazzzzZZZZZZZZ
Reply

Marsh Posté le 01-08-2005 à 13:23:03    

sircam a écrit :

Un conseil, si tu es admin : mange du Perl ou du Python, tu ne le regreteras pas. [:pingouino]


Ou du Ruby [:aloy]  
 
mais pas du Tcl, parce que ça pue grave ce truc :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 01-08-2005 à 13:34:35    

Ouaip [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed