Batch ftp

audrey -  
mamiemando Messages postés 34249 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je souhaite exporter un fichier.dmp (export de base oracle) d'un serveur linux vers un serveur windows.
Mon serveur linux est un serveur ftp.

J'ai deux scripts que j'exécute depuis le serveur Windows :

le script cmd :
ftp -v -i -n -s:C:\Documents and Settings\Administrateur\script_export_base.ftp

le script ftp :
open adresse_IP_serveur_distant
user *****
*****
mget export_base_*
quit

Cela ne fonctionne pas.
Si j'exécute les commandes du second script en ligne de commande, ça fonctionne.
Une idée ?

J'ai deux autres questions :
dois-je faire le transfert en ascii ou en binaire pour un fichier.dmp ?
Est-il possible de préciser le nom du fichier de destination avec mget (en fait, je n'ai qu'un seul fichier à transférer mais je ne peux pas utiliser la commande get car le nom du fichier à transférer comporte la date du jour et varie donc à chaque fois. Or la commande get ne connaît pas le caractère "*".) ?

Merci pour vos aides.

Audrey
A voir également:

1 réponse

mamiemando Messages postés 34249 Date d'inscription   Statut Modérateur Dernière intervention   7 899
 
Si dmp n'est pas un fichier texte (fichier binaire), alors choisis binaire.
En fait je te préviens tout de suite ftp est assez peu pratique pour ce que tu veux faire.

Petite suggestion : il serait beaucoup plus simple d'installer un client ssh (par exemple scp via cygwin) qui
- assurera un transfert sécurisé entre le serveur linux et ton pc windows
- te permettra de spécifier le nom et le chemin du fichier destination sur ton pc windows
- t'évitera de te poser des questions binaires / pas binaires.
http://www.cygwin.com/

Exemple : ton login sur le serveur linux s'appelle mando, le serveur linux s'appelle aldur, tu veux importer le fichier /home/mando/pouet.txt et le rappatrier sous windows via scp dans le répertoire /cygdrive/c (l'équivalent de c:) et appeler plop.txt. Ton script est alors un script shell (par exemple plop.sh) que tu peux lancer via cygwin :
#!/bin/sh
scp mando@aldur:/home/mando/pouet.txt /cygdrive/c/plop.txt

Une fois le fichier plop.sh écrit il suffit de lui donner les droits en exécution :
chmod a+x plop.sh

... et de le lancer :
./plop.sh

Il est également possible d'utiliser un système de clé ssh pour éviter d'avoir à saisir le mot de passe au moment du scp (ce qui est assez pratique dans une script). Si cette solution te convient je peux la détailler davantage. Si tu veux recopier un répertoire (au lieu du mirror de ftp) on utilise simple scp -r :
#!/bin/sh
scp -r mando@aldur:/home/mando/repertoire /cygdrive/c/


Bonne chance
0