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

Administration système Discussion :

Connection ftp scriptée


Sujet :

Administration système

  1. #1
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 584
    Points : 265
    Points
    265
    Par défaut Connection ftp scriptée
    Bonjour,

    Je chercher à faire un script pour automatiser une connection ftp, je fais comme ceci:

    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
     
    FTP_CMD="/usr/bin/ftp"
     
        printf "user: $user pass: $passi, IP $IP\n"
     
        echo "machine ${IP}" > ~/.netrc
        echo "login ${user}" >> ~/.netrc
        echo "password ${pass}" >> ~/.netrc
     
      $FTP_CMD ${IP} <<**
        ls
        bye
    **
     
       printf "retour= $?\n"
    Seulement, je ne récupère pas le code erreur comme je voudrais, quand ca marche ca renvois 0, mais si la connection plante ca renvoit n'importe quoi.
    Déja, est possible de tester si la connection a marché avant de passer une commande ftp?

    Merci.

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    il faut logguer le ftp dans un fichier (variable ou socket)
    et analyse le contenu

    ftp ............<< EOT
    ....
    ....
    ....
    ....
    ....
    EOT | tee /tmp/ftp.log

    après tu tests ligne à ligne (pour celles qui commance par un nombre le numero
    200 = commande valide
    330 = demande de password
    250 = changement de repertoire ok
    220
    etc...
    etc...

    par exemple pour analyser un listage de fichier
    il faut avoir eut les 3 retours suivants 200 150 226 à la suite et dans cet ordre

    idem pour un get ou un put (de mémoire)

    bref il faut faire ça en deux étapes...bien sur une fois l'analyse faite le fichier temporaire peut etre effacé



    ===========================


    duxièmement tu commets une erreur dans ton script
    tu recrées le .netrc avec les passwords et login en clair

    le .netrc existe justement pour ne pas pouvoir voir le password ni le login dans le script

  3. #3
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 584
    Points : 265
    Points
    265
    Par défaut
    J'ai essayer de faire un redirection par un pipe comme tu dis ca ne marche pas :-(.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      $FTP_CMD ${IP} <<EOT
      bye
    EOT | tee /tmp/ftp.log
     
       printf "retour= $?\n"
     
      done
    J'ai ces messages d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ./ftp_connect.sh -i 192.168.1.13
    ./ftp_connect.sh: line 97: syntax error: unexpected end of file
    Le EOT aime pas qu'on rajoute une redirection derriere apparament :-\.

  4. #4
    Membre confirmé Avatar de Tchetch
    Inscrit en
    Mars 2002
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 401
    Points : 477
    Points
    477
    Par défaut
    Salut,

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #!/bin/bash
    (
            echo "open XXXXX.com"
            echo "passive"
            echo "cd /web"
            echo "close"
    ) | ftp -v 2>&1 > myFTPLogFile.log

    Et comme ça tu peux récupérer la sortie et le code de retour.

    T.

  5. #5
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    Citation Envoyé par Blo0d4x3 Voir le message
    J'ai essayer de faire un redirection par un pipe comme tu dis ca ne marche pas :-(.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      $FTP_CMD ${IP} <<EOT
      bye
    EOT | tee /tmp/ftp.log
     
       printf "retour= $?\n"
     
      done
    J'ai ces messages d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ./ftp_connect.sh -i 192.168.1.13
    ./ftp_connect.sh: line 97: syntax error: unexpected end of file
    Le EOT aime pas qu'on rajoute une redirection derriere apparament :-\.

    j'ai oublié les ()

    (
    ftp.....
    EOT
    ) | ............
    mais un man ksh ou bash te l'aurait dit je pense

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 330
    Points : 36 849
    Points
    36 849
    Par défaut
    Au cas ou vous ne connaitriez pas CKermit, jetez un oeil à:
    http://www.columbia.edu/kermit/ftpscripts.html
    Il implémente un client FTP (ou SFTP) scriptable qui répond à pas mal de soucis délicats à résoudre depuis à partir d'un script shell.
    - W

Discussions similaires

  1. Connection FTP dans un script VB.NET
    Par swokor dans le forum SSIS
    Réponses: 4
    Dernier message: 02/05/2012, 11h37
  2. Connection ftp
    Par djibril dans le forum Réseau
    Réponses: 9
    Dernier message: 07/01/2010, 10h36
  3. Script KSH - Connection FTP
    Par Fleep dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 19/05/2008, 10h53
  4. Script de connection FTP
    Par 12_darte_12 dans le forum Linux
    Réponses: 12
    Dernier message: 08/11/2005, 16h28
  5. (MS DOS) Script de connections FTP
    Par Furius dans le forum Windows
    Réponses: 14
    Dernier message: 06/10/2005, 18h45

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