Ftp de Unix vers Windows

Résolu
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
Configuration: Windows XP
Firefox 3.5.5

6 réponses

  1. 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
    1. Modérateur
      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
      1. Modérateur
        De rien et bonne continuation :-)
        0
        1. Contributeur
          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