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 :

Transfert sftp via script sh, sans expect


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Transfert sftp via script sh, sans expect
    Bonjour,

    Je suis bloquée sur un script de transfert sftp.

    Je dois transférer des fiches xml sur un serveur sftp via script sh. Ce script est déclenché par un script inotify lors de l'ajout d'un fichier dans mon répertoire de dépôt.
    Sur mon serveur, je ne dispose que d'un accès sftp et je n'ai pas de client ssh.

    Voici le script mis en place, qui fonctionne :

    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
    #!/bin/sh
    source /etc/antidot/antidot.conf
    for file in `ls $depot/*.xml`; 
    do 
    echo $file;
    expect << EOF
    spawn /usr/bin/sftp $LOGIN@$SERVEUR
    expect "password:\r"
    send -- "$PASS\r"
    expect "sftp>"
    send -- "cd $REPERTOIRE\r"
    expect "sftp>"
    send -- "put $file\r"
    expect "sftp>"
    send -- "quit\r"
    EOF
    	rm $file;
    done;
    Pour chaque fichier présent dans mon dépôt, j'ouvre ma connexion, je le transfert, je ferme ma connexion, je le supprime en local.

    J'ai deux soucis avec ce script :
    - j'ouvre et referme ma connexion sftp pour chaque fiche
    (potentiellement je peux en avoir plusieurs dizaine de mise à jour / minutes, au delà de 10 connexion simultanée je suis blacklistée)
    - j'utilise expect pour communiquer avec mon shell sftp
    (mon hébergeur ne le souhaite pas)

    Je ne sais pas comment résoudre ce problème n'ayant que peu de connaissances en système. Est-ce que quelqu'un à déjà mis en place un tel script ? et aurait des pistes pour me permettre d'avancer ?

    Merci d'avance
    Anne-Sophie

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 595
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 595
    Points : 19 474
    Points
    19 474
    Par défaut
    Bonjour Anne-Sophie,

    contrairement à ftp, la commande put de sftp peut envoyer plusieurs fichiers (elle se comporte comme mput).

    pour la partie authentification, il est probablement possible de générer une paire de clés (cf. ssh-keygen) que tu copieras une fois via une connexion sftp manuelle...
    ?

    ensuite, ton script deviendrait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sftp -oIdentityFile="/là/où/sont/lesClés" $LOGIN@$SERVEUR <<EOF
    put $depot/*.xml
    quit
    EOF
    edit: j'en suis arrivé là après 52mn de recherche...
    peut-être parce que j'utilise google/linux...
    ?
    bon, si tu n'avais pas posé la question, je n'en aurais pas su davantage

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup, ça fonctionne nickel. C'est mon hébergeur qui va être content.

    Pour ceux qui ont cherché comme moi, voici la page sur ssk-keygen que j'ai utilisé.

    Anne-Sophie

Discussions similaires

  1. déplacement de fichier via sftp en script ksh
    Par saladin443 dans le forum AIX
    Réponses: 2
    Dernier message: 15/05/2013, 18h21
  2. [SFTP] : utilisation dans un script bash sans intervention humaine (mot de passe)
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 02/03/2011, 10h07
  3. Connexion SFTP et SSH via script Bash
    Par pcsystemd dans le forum Linux
    Réponses: 1
    Dernier message: 18/06/2009, 12h39
  4. Savoir si un div existe ( via son ID ) sans faire bugger le script
    Par Invité dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/05/2006, 08h59
  5. Events "OnAuthenticate, ..." accessible via script
    Par mchicoix dans le forum XMLRAD
    Réponses: 10
    Dernier message: 09/02/2005, 16h50

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