Ftp de Unix vers Windows

Résolu/Fermé
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 - 12 nov. 2009 à 10:00
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 13 nov. 2009 à 17:12
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 lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
12 nov. 2009 à 11:33
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 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
12 nov. 2009 à 19:16
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 lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
13 nov. 2009 à 07:46
Merci !
0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
13 nov. 2009 à 17:12
De rien et bonne continuation :-)
0

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

Posez votre question
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
12 nov. 2009 à 11:03
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 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
12 nov. 2009 à 12:14
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