IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Excecution automatique d'un transfert ftp en shell


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Excecution automatique d'un transfert ftp en shell
    bonjour, j'essaie de faire un script en simple shell qui me connecte à un ftp et récupère la liste de tous les fichiers qu'il contient.
    J'arrive à me connecter mais impossible d'exécuter quoi que ce soit après la connection car le script se termine inopinément..
    Voilà mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #! /bin/sh
    ftp -nv ftp.domain.com << EOF
    user xxx xxx
    bin
    pwd
    quit
    echo "script terminé"
    quand je le lance il me connecte, passe en "binary mode", me renvoie le répertoire distant, puis le script se termine..
    pourquoi le "echo "script terminé"" ne s'exécute pas?
    dois-je créer une fonction de connection ftp et la séparer du reste du script?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 404
    Points
    28 404
    Par défaut
    Et où se trouve la ligne qui termine le <<EOF ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Hum je ne comprend pas ta question..
    je débute dans le shell.. pourquoi y a-t il besoin d'un autre EOF??

  4. #4
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Tu peux l'écrire de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #! /bin/sh
    ftp -nv ftp.domain.com << END_SCRIPT
    user xxx xxx
    bin
    pwd
    quit
    echo "script terminé"
    END_SCRIPT
    C'est plus parlant mais avec EOF ça passe aussi. EOF (End Of File)

    ++

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 80
    Points : 67
    Points
    67
    Par défaut
    En fait tout ce qui est entre les "EOF" n'est interpreté que par le shell du FTP. L'idée est de mettre ta portion de code FTP dans un script à part, et tu récupère les output et les error de ton transfert dans des fichier temporaire que tu crées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ftp -n -v -i $ftp_server_ip <<EOF 1>>fout 2>>ferr
    user $ftp_user $ftp_passwd
    cd $remote_dir
    lcd $local_dir
    put $file_name
    bye
    EOF
    dans ce petit script je récupère le résultat du prompt du script dans deux fichier "fout" et "ferr" et j analyse ses sorties pour connaitre l'etat de mon transfert.Mais ce code doit etre dans un script à part que tu pourra appeler autant de fois que tu veux à partir d'un autre script.
    Si je t'ai pas tres bien répondu repose ta question avec plus d explication.

    Bonne chance

Discussions similaires

  1. Shell Linux : Transfert FTP
    Par cdeboeuf dans le forum Linux
    Réponses: 3
    Dernier message: 18/01/2007, 11h26
  2. Réponses: 2
    Dernier message: 21/06/2005, 21h18
  3. transfert ftp avec le composant
    Par sillycoder dans le forum Composants VCL
    Réponses: 3
    Dernier message: 19/05/2005, 09h35
  4. Transfert FTP répétitif et perte de fichiers
    Par Harry dans le forum Développement
    Réponses: 3
    Dernier message: 24/06/2004, 15h15
  5. Problème de transfert FTP sous IIS
    Par thanathz dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo