rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Script unix pour un FTP recursif ?

Posté par ido daisuke, le mardi 24 juin 2003 à 17:02:17
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 ?
 Signaler ce message aux modérateurs

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
batmat, le mardi 24 juin 2003 à 17:13:11
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 :-)

2


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le mardi 24 juin 2003 à 17:25:04
oui ce genre de script existe.
J'en ai vu en perl, en Python...

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
batmat, le mardi 24 juin 2003 à 18:50:51
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 :-)

3


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
teebo, le mardi 24 juin 2003 à 17:43:30
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...

.  .
\_/

4


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
teebo, le mardi 24 juin 2003 à 18:14:11
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

.  .
\_/

6


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
aubertin, le mercredi 5 novembre 2003 à 11:08:28
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.

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
CORINNE, le mercredi 5 novembre 2003 à 12:08:05
j'aimerais bien l'avoir ton script

8


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
aubertin.marc, le mercredi 5 novembre 2003 à 16:03:32
envoie moi ton mail

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Tof, le mercredi 19 novembre 2003 à 14:16:36
hello,
Si c'est possible j'aimerais bien aussi l'avoir ce script...
khrys666@hotmail.com
merci

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bernard, le jeudi 20 novembre 2003 à 10:38:06
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.
bernard.vautey@free.fr

Bernard

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dasky, le lundi 15 décembre 2003 à 22:52:22
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.
---- > dasky0@hotmail.com
Ciao.
Dasky

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Eric, le mardi 6 janvier 2004 à 18:07:51
Ce script m'interesse également car je dois transférer des fichiers PDF dès leur apparition dans un dossier d'un serveur SUN ver un serveur NT.

Merci pour ta réponse.

Eric

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Cornez, le vendredi 16 avril 2004 à 11:04:08
je suis également interréssé par le scrip permettant d'effectuer un ftp automatique.
Je dois en effet effectuer un transfert de répertoires d'un serveur unix vers un autre serveur unix.
D'avance je vous remercie pour votre réponse

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
corinne, le mercredi 5 novembre 2003 à 16:49:34
cbriche@archange-groupe.com
merci d'avance et bonjour et aurevoir j'étais pressée ce midi
excuses mon impolitesse

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Doudou, le jeudi 20 novembre 2003 à 19:54:55
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.
gueye.doudou1@caramail.com

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Greg, le mardi 6 janvier 2004 à 08:44:32
J'aimerais bien aussi l'avoir
si ca te gene pas
mon mail c totoalunette@caramail.com

Merci

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ScavengeR, le mardi 4 mai 2004 à 18:00:58
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

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
aubertin, le mercredi 5 mai 2004 à 09:16:19
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

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ScavengeR, le jeudi 6 mai 2004 à 00:16:21
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...

21


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
eric_fortique, le samedi 8 mai 2004 à 02:39:53
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è .

22


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
aubertin, le samedi 8 mai 2004 à 23:21:50
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)

35


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Rakotoson, le lundi 16 août 2004 à 13:36:13
Je veux recevoir le script unix pour ftp recursif
remerciements

23


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
eric_fortique, le dimanche 9 mai 2004 à 23:08:41
Mon e-mail : eric_fortique@yahoo.fr
Merci aubertin pour votre aide .

24


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
eric_fortique, le mercredi 12 mai 2004 à 02:00:29
Merci aubertin ,
j'essayerai de comprendre ton script,
il me parait tres difficile.

25


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ScavengeR, le samedi 29 mai 2004 à 12:44:09
ben c sympa.... d'en faire profiter les autres... ca me donbne envie d'effacer mon post tiens :)

26


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Elise78, le mardi 27 juillet 2004 à 14:24:31
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

29


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
scavenger, le samedi 31 juillet 2004 à 20:18:23
salut elise,

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

cdlt,

30


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Elise78, le samedi 31 juillet 2004 à 23:34:31
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

31


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ScavengeR, le dimanche 1 août 2004 à 12:22:40
salut elise,

mon email est spam2@scavenger.fr.st 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

32


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ScavengeR, le dimanche 1 août 2004 à 12:27:24
(.....) 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

33


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Elise78, le lundi 2 août 2004 à 16:59:29
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 !!!

36


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
scavenger, le mardi 17 août 2004 à 13:54:00
BON OKOK ... je vais vous le donner, moi, ce script...
bah c pas compliqué, il faut simplement utiliser les commandes de base que vous avez semble t il tous appris (sic!) mais que votre poil dans la main vous empêche de taper... LOL !!! n'est ce pas Elise...
(surtout le prenez pas mal ct un compliment)

alors pour l'arbo distante il y a 2 solutions :
==>soit vous connaissez votre arbo distante et l'avez dans un fichier plat sous la forme :

(...)
/fs01/appl/PRO/controlm
/fs01/appl/PRO/controlm/install
/fs01/appl/PRO/controlm/ctm
/fs01/appl/PRO/controlm/ctm/exe_AIX
(...)

, soit il faut le fabriquer.
==>pour récuperer une arbo distante, il n'y a pas 36 solutions, en fait il n'y en a qu'une seule : le rsh !

...oo00 voici donc, sous vos yeux ébahis... le script magique !!! 00oo...

#!/bin/ksh
#@(#)################
#@(#)# cartouche gnagnagna #
#@(#)################

#-----------------------------------------------------------­
#Definition variables environnement
#-----------------------------------------------------------­

NbParam=$#
MachDistante=$1
RepDistant=$2
RepLocal=$3

DATE=$(date +%y/%m/%d' '%T)
echo -------------------------------------------------------
echo $DATE $0
echo -------------------------------------------------------

#-----------------------------------------------------------­
# Preparation des variables programmes
#-----------------------------------------------------------­

umask 000
REP_APPLI=