Bonjour à tous,
J'ai des petits soucis avec expect. Voilà, je veux automatiser du rapatriement de données via ssh sur une machine distance. J'ai donc essayé un petit script expect, que voilà :
Ce qui me permet de préparer le transfert proprement dit. Mais le problème c'est que lorsque je rajoute des commandes après, "spawn scp " par exemple, le début du script ne marche plus ! Il reste coincé sur la machine distante et n'arrive pas à exécuter les commandes suivantes.
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 #!/usr/bin/expect -f set login [lrange $argv 0 0] set password [lrange $argv 1 1] set ipaddr [lrange $argv 2 2] set timeout -1 spawn ssh $login@$ipaddr match_max 100000 expect "*?assword:*" send -- "$password\r" expect "*?kraken:~$" send -- "\r" send -- "cd tests\r" send -- "tar -czvf resultats.tar.gz resultats\r" send -- "exit\r" expect eof
J'ai exactement le même problème quand j'essaie d'intégrer le script ci-dessus (même sans les ajouts ultérieurs) au sein d'un script bash, comme ceci par exemple :
Si vous vous demandez pourquoi j'ai rajouté le "expect kraken", où kraken est le nom de la machine distante, c'est parce que sinon il n'arrivait pas du tout à exécuter de commandes distantes sur la machine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #!/bin/bash /usr/bin/expect - << EndMark (code ci-dessus) EndMark
Voilà, désolé si cette question est une question de noob :s et merci d'avance.
Partager