Ftp de Unix vers Windows

Résolu
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je souhaiterai faire un script qui envoie mon fichier qui se trouve sur un serveur unix vers un serveur Windows. J'essaye de faire un ftp depuis notre serveur unix mais je n'y arrive pas :-(
Je trouve de tout sur les exemples du net mais je ne sais plus quoi choisir, certains écrivent :
ftp
d'autre ftp -n -v
etc, ...

voici ce que j'ai fait, ce qui est très certainement érroné

echo "fichier a envoyer sur Windows :"
read fichier
IPSVRWIN="1.1.1.1"
USERWIN="test"
PASSWIN="test"
DIR_UNIX=/data/work/files
DIR_WIN=/$IPSVRWIN/Mes fichiers/Sortie
/usr/bin/ftp -n -v
open IPSVRWIN
user $USERWIN $PASSWIN
binary
cd $DIR_WIN
lcd $DIR_UNIX
put $fichier
quit
A voir également:

6 réponses

OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
sans vouloir te vexer je ne comprends pas bien ta réponse :-/
tu es en train de me dire qu'on ne peut faire du ftp en shell/bash ?
0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Je suis en train de dire qu'une instruction ftp n'est pas une instruction shell. Tel que tu l'as écris, tes instructions ftp ne sont pas passées à ftp mais à ton interpréteur shell. Tout ce passe exactement comme si tu tapais successivement toutes ces commandes derrière ton invite de commande shell. Or seule l'instruction "/usr/bin/ftp -n -v" est compréhensible par ton shell, d'où l'erreur.

Si tu adoptes une méthode comme celle proposée par le lien que je t'ai donné (ou celle proposée par dubcek), tu rediriges bien des instructions ftp (open etc...) dans la commande ftp, et elles sont donc correctement passées à ftp et donc correctement interprétées.

Dans le lien que je t'ai donné, on redirige un fichier contenant des instructions ftp dans la commande ftp. Dubcek a une méthode peut-être plus parlante (en tout cas plus proche de ce que tu as commencé à faire), il redirige la suite du script shell (jusqu'au EOF) dans l'entrée standard (lue par ftp).

Ce qu'il faut bien voir, c'est que sous linux, tout est fichier. Ainsi tu peux indifféremment rediriger dans une commande un fichier au sens habituel du terme ou ce que tu saisis au clavier (l'entrée standard qui n'est autre que le fichier /dev/stdin), et bien d'autres choses encore.

Bonne chance
0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
Merci !
0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
De rien et bonne continuation :-)
0

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

Posez votre question
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Le truc c'est que les commandes ftp que tu écris dans ton script shell n'ont un sens qu'en ftp, pas en shell... Ces commandes doivent donc être passées en paramètres à ftp et non en tant qu'instruction shell. Il faudrait faire (je pense) un truc dans ce genre :
https://forum.hardware.fr/hfr/Programmation/Shell-Batch/commande-script-ftp-sujet_78870_1.htm

Bonne chance
-1
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
il faut rediriger le ftp pour qu'il lise les commandes dans le script
/usr/bin/ftp -n -v << EOF
open IPSVRWIN
user $USERWIN $PASSWIN
binary
cd $DIR_WIN
lcd $DIR_UNIX
put $fichier
quit
EOF
-1