ScavengeR
6 mai 2004 à 00:16
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...
Merci de m'envoyer le script... ça me ferait énormément plaisir.
---- > Adresse supprimée Modération CCM
Ciao.
Dasky
Merci pour ta réponse.
Eric
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