Script unix pour un FTP recursif ?

Fermé
ido daisuke - 24 juin 2003 à 17:02
 raphael - 6 sept. 2004 à 14:50
j'ai besoin de transferer via FTP tout le contenu d'un repertoire
pour ce faire, je n'ai accès comme client ftp qu'à la commande ftp du shell unix.

Est-il possible de faire un script permettant d'envoyer tout le contenu d'un repertoire (dossiers et fichiers), a partir du nom de ce repertoire, via la commande ftp ?
A voir également:

20 réponses

j'ai déjà écrit des scripts en shell qui permettent de faire des transferts par ftp de répertoire et sous-répertoire en mode récursif
avec une connexion sécurisée user et mot de passe écrite dans le script.
on peut ainsi faire une sauvegarde automatique de répertoires de plusieurs PC à partir d'une machine unix.
4
j'aimerais bien l'avoir ton script
0
aubertin.marc Messages postés 1 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 5 novembre 2003 > CORINNE
5 nov. 2003 à 16:03
envoie moi ton mail
0
Tof > aubertin.marc Messages postés 1 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 5 novembre 2003
Modifié le 6 sept. 2004 à 14:50
hello,
Si c'est possible j'aimerais bien aussi l'avoir ce script...
Adresse supprimée Modération CCM
merci
0
Salut,
Désirant à partir d'un PC Linux rapatrié régulièrement via FTP une arborescence d'un autre PC, j'aimerais bien, dans la mesure du possible, avoir ton script.
Merci d'avance.
Adresse supprimée Modération CCM
Bernard
0
Salut, j'utilise LFTP, et je rencontre aussi le problème d'envoi de contenu de répertoire récurisivement... Je suis sous Mandrake 9.1, mode graphique KDE...
Merci de m'envoyer le script... ça me ferait énormément plaisir.
---- > Adresse supprimée Modération CCM
Ciao.
Dasky
0
OK OK ... lol ! desolé pour le coup de bourre gt vener ce jour la puisque g cherché le moyen de faire des ftp en fonction du user et du password qui seraient ds des variables et ke je ne trouvais pas la syntaxe... c chose fait et tu me dit que g repondu sommairement ... ok ct de la recuperation et pas de l'envoi, mais je t'assure que by marche aussi bien que bye !!!

enfin voici un script de recuperation de fichiers distants en fonction d'un user et password qu'on peu declarer en variable:

avec comme variables (entre [] = pas obligé)

liste=/.../fichier_liste_des_machines.txt (liste séparée par des espaces ou des retours chariot)
REPLOCAL=/.../repertoirelocal
SOUSREP1=sousrepertoire1
SOUSREP2=...
...
[LOG=/.../fichierlog.log]
USER=user
PASSWORD=password

# DEBUT ################
for MACHINE in $liste
do

ftp -inv $MACHINE <<FINDETEXTE [>$LOG]
user $USER $PASSWORD
lcd $REPLOCAL
cd $REPDISTANT
mget *
lcd $REPLOCAL/$SOUSREP1
cd $REPDISTANT/$SOUSREP1
mget *
...
lcd $REPLOCAL/$SOUSREPn
cd $REPDISTANT/$SOUSREPn
mget *
bye
FINDETEXTE

done
####################

etc... ce n'est qu'un exemple, si vous avez des sous sous sous repertoires ca marche pareil, même principe... mais il y a mieux si vous avez beaucoup de sous repertoires : il faut faire une fonction "FTP_mget" par exemple, avec les user, pass, reps en parametres et faire la boucle en fonction des repertoires, et a chaque fois appeler la fonction FTP_mget, ca sera plus simple a gerer...
mais est ce plus rapide ? j'en doute, car la procédure d'authentification prend du temps, et repetée beaucoup cela pourait faire baisser les perf grave...

enfin voila o cas ou une fonction comme decrit ci dessus, qu'on appelerai avec des parametres dans l'ordre des declaration de variables interne, mais c pas obligé, on peut se contenter de declarer juste la machine et les repertoires si le user et le pass sont communs et declarés avant, a adapter !

FTP_mget ()
{
MACHINE=$1
USER=$2
PASSWORD=$3
REPLOCAL=$4
REPDISTANT=$5
ftp -inv $MACHINE <<FINDETEXTE
user $USER $PASSWORD
lcd $REPLOCAL
cd $REPDISTANT
mget *
bye
FINDETEXTE
}

explications sur les parametres du programme ftp:
-i == mode interactif OFF == pas de question "telecharger ce fichier (O/N) ?" en cas de mget ou mput
-n == n'utilise pas le .netrc
-v == verbose, dans la log du ftp si vous l'utilisez il y aura des lignes commencant par un numero a 3 chiffres, comme des codes retours, ca vous permet par la suite de detecter des erreurs ds vos transferts, avec des grep dans le fichier de log, après chaque appel de la fonction FTP_mget par exemple...
3
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
24 juin 2003 à 17:43
Moi j'utilise dftp ou un truc du genre, j'essaierai de penser a regarder ca ce soir a moins que je retrouve ca sur le net... C'est pratique tu peux faire une copie de ce que tu as dans un repertoire...

.  .
\_/
2
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
24 juin 2003 à 18:14
http://lftp.yar.ru/lftp-man.html

Hop, en fait ca s'appelle lftp, je ne sais pas il est peut etre installe ...
Sinon ben ca doit etre faisable de faire le script en ftp pur mais relativement fastidieux quand meme j'en ai peur :-S

.  .
\_/
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eric_fortique Messages postés 9 Date d'inscription samedi 8 mai 2004 Statut Membre Dernière intervention 12 mai 2004
8 mai 2004 à 02:39
Salut tous ,

Je veux le script ftp sous linux.
ou idèe comment le programmer les fonctions nècessairre .
C t'un projet qu'il me faux rendre d'ici une semaine .
C urgent !!!

Merci pour tout aides qui me sera apportè .
2
Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006 3
27 juil. 2004 à 14:24
Salut !

Alors justement, je faisais un petit tour sur ce post cherchant désespéremment une réponse à mon prblème de la meme acabie et oh rage, oh désespoir quand j'arrive à la fin et remarque qu'il n'y à que partiellement la réponse ... :-( Vraiment dommage.

Alors si quelqu'un par hasard, à le code et veut bien le faire partager aux autres ca me serait bien utile. Ma requête se tourne en premier vers l'auteur du code en question. ;-)

Merci d'avance. Elise78 :-p

PS : mon adresse mail au cas ou : mannon78_At_hotmail.com
2
salut elise,

comment ca que partiellement la reponse ???? tu cherche quoi exactement ???

cdlt,
0
Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006 3 > scavenger
31 juil. 2004 à 23:34
Salut scavenger !!

Pour etre plus precise je cherche la possibilite de faire une connexion telnet dans un script shell bash. Mais apparemment ca a l'air infaisable. Ou bien personne ne sait faire :-p . Sinon, j'ai eu le temps de faire mon propre script pour aller copier un repertoire complet d'un serveur distant par ftp. C'est pas hyper bien codé avec des niveaux d'arborescence et tout mais ca marche bien, il faut juste que je verifie si les fichiers repondant au motif .* sont pris en compte.
Ce qui fait que je ne le trouve pas parfait c'est que je suis obligee d'aller a l'aide d'un telnet (le meme que je voulais automatiser) creer le fichier de l'arborescence qui va etre recupere par mon script et qui va servir pour recuperer l'arborescence complete sur le poste cible.
Dasn la version quasi finale de mon script j'ai 9 parametres <serveurdist> <login> <passwd> <deb_arbo_serveur> <deb_arbo_client> <proprio> <groupe> <option> (et y'en aurait deux ou trois en travaux)
Ce qui correspond à : je voudrais me connecter a $serveurdist avec mon $login et mon $passwd pour recuperer le repertoire qui est a $deb_arbo_serveur et le mettre dans le repertoire deb_arbo_client ce repertoire devra etre la propriete de $proprio et du groupe $groupe, sans oublier que je voudrais que les données soient recuperees en mode $option (ascii ou binary) ... etc

Cordialement, Melle Elise78
0
ScavengeR > Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006
Modifié le 6 sept. 2004 à 14:50
salut elise,

mon email est Adresse supprimée Modération CCM au cas ou...

apparemment d'apres ce que je comprend, tu ne connais pas l'arbo distante, c pourquoi tu veux du telnet automatisé pour la récupérer et t'en servir dans ton ftp... c ca ????
saches que du telnet automatisé je ne sais pas si ca marche g jamais essayé, mais suivant le même principe de l'envoi de commandes avec la redirection shell comme j'ai montré dans mes exemples, ca devra
0
ScavengeR > Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006
1 août 2004 à 12:27
(.....) ca devrait peut etre marcher ??

genre
telnet $machine <<EOF
commandes...
EOF

sinon tu as essayé le rsh ? ca marche bien ca !

n'hésite a insister si g tjs pas compris LOL !!!

aller a plus amuse toi bien !!

scavenger
0
Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006 3 > Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006
2 août 2004 à 16:59
Salut ScavengeR !!

Il me semble que tu as tout compris.

Le truc c'est que je suis hyper feignante et que je n'aime pas faire ne serait-ce 10 fois la même manip fastidieuse (et surtout j'ai peur d'oublier quelque chose). Et c'est dans ces moments la ou je me sens bien avec l'informatique lol

Je voudrais que ce script marche pour le plus le cas possible sans pour autant faire un applicatif graphique  … par exemple je récupère ce script et j'arrive a le faire tourner sur mon poste personnel …

Effectivement je cherche un truc du style :

telnet $machine <<EOF
commandes...
EOF

ou

par une commande que je peux lancer par ftp
parce que je ne peux pas créer mon fichier
arbo_serveurdist.txt par le ftp (avec la commande
find . –type d echo{} \; >> arbo_serveurdist.txt

Je m'amuse comme une folle lol !!!
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
24 juin 2003 à 17:25
oui ce genre de script existe.
J'en ai vu en perl, en Python...
1
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114
24 juin 2003 à 18:50
oui certainement dans ces langages, c'est vrai.
Moi, je pensais au shell "classique" (*sh). Il me semble que ce n'est pas possible avec celui-ci

@++
Poster, poster encore et toujours :-)
0
Désirant à partir d'un PC Linux rapatrié régulièrement via FTP une des fichiers d'un autre PC, j'aimerais bien, dans la mesure du possible, avoir ton script.
Merci d'avance.
Adresse supprimée Modération CCM
1
J'aimerais bien aussi l'avoir
si ca te gene pas
mon mail c Adresse supprimée Modération CCM
Merci
1
la modestie ne t'étouffe pas, mais si tu lisais bien les demandes tu n'y réponds que très sommairement

en premier ton script ne focntionnera pas avec "by" au lieu de "Bye" c'est un détail !!
par contre entièrement d'accord sur l'astuce

et puis c'est plutot "binary" et "mget" pour récupérer des fichiers

il n'est pas récursif
ton astuce de déclarer dans .netrc fait que ton script ne fonctionne qu'à partir d'un client connu.

pour ceux qui sont intéressé je peux leur envoyer un script complet
utilisé par un serveur unix qui sauvegardait toutes les nuits des répertoires complet de 30 à 50 PC (il faut installé un serveur ftp sur le poste ex logiciel war-ftpd)
voir mon premier message
1
laisse moi ton email et je t'envoie mon script avec une fonction récursive, (le programme gère tout seul la profondeur d'un répertoire) testé et utilisé entre un serveur unix et des PC sur un réseau WAN ayant un service ftp installlé (logiciel warftpd)
1
Je veux recevoir le script unix pour ftp recursif
remerciements
0
eric_fortique Messages postés 9 Date d'inscription samedi 8 mai 2004 Statut Membre Dernière intervention 12 mai 2004
Modifié le 6 sept. 2004 à 14:50
Mon e-mail : Adresse supprimée Modération CCM
Merci aubertin pour votre aide .
1
eric_fortique Messages postés 9 Date d'inscription samedi 8 mai 2004 Statut Membre Dernière intervention 12 mai 2004
12 mai 2004 à 02:00
Merci aubertin ,
j'essayerai de comprendre ton script,
il me parait tres difficile.
1
ben c sympa.... d'en faire profiter les autres... ca me donbne envie d'effacer mon post tiens :)
1
ce script m'intéresse.
c'est possible de l'avoir??
Adresse supprimée Modération CCM
1
bonjour SAM,

mais que veux tu en fait ? perso g mis les infos qu'il fallait pour le script en question, et sinon aubertin a fait un autre script apparemment plus compliqué, donc je vois pas trop ... ca ne te suffit pas ce que j'ai mis ??? demande a aubertin si c pas suffisant ou réexplique toi :)

cdlt,
scavenger
1
En effet, pourquoi ne pas mettre en ligne ce script ?
C'est pas du GNU/GPL ???
Mdr
1
bonjour, je serai interresé par le script ftp récursif sous linux.
serait il possible de me l'envoyer à cette adresse Adresse supprimée Modération CCM
merci d'avance
1
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114
24 juin 2003 à 17:13
Je crois que cette question a malheureusement déjà été posée... :
On ne peut pas car ftp ne prend pas le mot de passe en option...

@++
Poster, poster encore et toujours :-)
-1
pfff trop facile:

ftp -v machine <<FINLE
prompt
[type ascii]
[lcd repertoirelocal]
cd repertoiredistant
mput *
by
FINLE

et voila !!!!!!!!!!!!!!!!!!!!!
c tout naze, et ca suppose que le user qui envoi les fichiers est déclaré dans le .netrc de son répertoire home sinon on vous demandera un mot de passe et un user

==> ligne à rajouter dans le .netrc pour cofigurer un pass et un login automatique en rlogin ou en ftp:
machine xxxxx login yyyy password zzzzz
-1