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