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

Linux Discussion :

Diffusion par FTP


Sujet :

Linux

  1. #1
    Membre averti Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Points : 301
    Points
    301
    Par défaut Diffusion par FTP
    Bonjour,

    Voila, je me suis fait un petit script qui permet de transferer des fichiers dans sur une liste de serveurs defini, et ceci automatiquement (c'est l'interret du script). Mon souci est le suivant :

    [kiko@server1 ]$ ./sprayFilesByFTP watcher_sun.ta
    + HOSTS=195.110.253.131 195.110.253.137
    + USER=kopi
    + PASSWD=3333
    ./sprayFilesByFTP: line 30: syntax error: unexpected end of file
    [kiko@server1 ]$
    J'ai essayer de le tracer (#!/bin/bash -x) mais je ne vois pas d'ou vient l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #!/bin/bash -x
     
    HOSTS='195.110.253.131 195.110.253.137'
    USER='kopi'
    PASSWD='3333'
    PORT='21'
     
    if [ $# > 0 ]
    then
            for file_arg in $*
            do
                    if [ -f $file_arg ]
                    then
                            for host in $HOSTS
                            do
                                    echo  $host
                                    ftp -n $host $PORT<<END_SCRIPT
                                    user $USER $PASSWD
                                    put $file_arg
                                    quit
                                    END_SCRIPT
                            done
                    else
                            echo "The file:"
                    fi
            done
    else
            echo "You must specify all the files that you want to transfert in argument of the script"
    fi
    J'ai verifier les quotes ... je ne vois rien qui pourrait faire planter le script comme cela.

    Merci du coup de main

  2. #2
    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
    Sans regarder en détail ton code, il manque le port même si ce n'est pas le problème, je pense qu'il faut l'indiquer.
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftp -n $host $port << END_SCRIPT
    ++

  3. #3
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    [QUOTE=max44410]Bonjour,

    Voila, je me suis fait un petit script qui permet de transferer des fichiers dans sur une liste de serveurs defini, et ceci automatiquement (c'est l'interret du script). Mon souci est le suivant :



    J'ai essayer de le tracer (#!/bin/bash -x) mais je ne vois pas d'ou vient l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #!/bin/bash -x
     
    HOSTS='195.110.253.131 195.110.253.137'
    USER='kopi'
    PASSWD='3333'
     
    if [ $# > 0 ]
    .../...
                                    echo  $host
                                    ftp -n $host<<END_SCRIPT
                                    user $USER $PASSWD
                                    put $file_arg
                                    quit
                                    END_SCRIPT
                            done
    .../...

    Avec un tiret après <<, ça devrait aller mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftp -n $host<<-END_SCRIPT
    Explication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <<[-]étiquette
            document en ligne
    étiquette
    <<[-]Si l'opérateur de redirection est <<-, alors les tabulations en tête de chaque ligne sont supprimées, y compris dans la ligne contenant étiquette. Ceci permet d'indenter de manière naturelle les documents en ligne au sein des scripts.

  4. #4
    Membre averti Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Points : 301
    Points
    301
    Par défaut
    Citation Envoyé par BlaireauOne

    Avec un tiret après <<, ça devrait aller mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftp -n $host<<-END_SCRIPT
    Explication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <<[-]étiquette
            document en ligne
    étiquette
    <<[-]Si l'opérateur de redirection est <<-, alors les tabulations en tête de chaque ligne sont supprimées, y compris dans la ligne contenant étiquette. Ceci permet d'indenter de manière naturelle les documents en ligne au sein des scripts.
    Merci nikel ca fonctionne ... pour le numero de port ce n'etait pas necessaire mais je l'ai rajouté quand meme. voila mon code un peu plus complet ... si ca peut servir a certains :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    #!/bin/bash
     
     
    HOSTS='IP1 IP2 IP3 IP4'
    USER='toto'
    PASSWD='passwd'
     
    if [ $# > 0 ]
    then
            for file_arg in $*
            do
                    if [ -f $file_arg ]
                    then
                            for host in $HOSTS
                            do
                                    echo  $host
                                    ftp -n $host<<-END_SCRIPT
                                    user $USER $PASSWD
                                    put $file_arg
                                    quit
                                    END_SCRIPT
                            done
                    else
                            echo "## /!\ The file: ${file_arg} does not exist /!\ ##"
                    fi
            done
    else
            echo "## /!\ You must specify all the files that you want to transfert in argument of the script /!\ ##"
    fi
    Merci encore ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment récupérer tout un répertoire par FTP ???
    Par titof dans le forum Réseau
    Réponses: 6
    Dernier message: 03/10/2006, 19h54
  2. transmission par ftp...
    Par youp_db dans le forum Développement
    Réponses: 8
    Dernier message: 24/09/2005, 19h10
  3. Transfert de fichier par ftp
    Par schub1015 dans le forum MFC
    Réponses: 3
    Dernier message: 14/01/2004, 18h53
  4. Réponses: 1
    Dernier message: 19/08/2003, 17h11

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