Bonjour à tous,
voilà mon soucis.
J'ai un script expect qui doit me dumper ma base oracle se trouvant sur un serveur distant que j'accède via SSH et ma rapatrier le dump sur le serveur local.
Le soucis que j'ai est qu'en utilisant la commande spawn, le script distant n'est pas exécuté.
Si j'utilise la commande "system" le script est bien exécuté mais les commande "expect" et "send" ne fonctionnent et je dois à nouveau renseigner les "mot de passe" ssh.
Code bash : 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 #!/usr/bin/expect stty -echo send_user -- "Who are you ? " expect_user -re "(.*)\n" send_user "\n" stty echo set USER $expect_out(1,string) stty -echo send_user -- "Give me the password for $USER: " expect_user -re "(.*)\n" send_user "\n" stty echo set PWD $expect_out(1,string) stty -echo send_user -- "Now give me the password for the system user of the database:" expect_user -re "(.*)\n" send_user "\n" stty echo set ORACLE_PASS $expect_out(1,string) spawn ssh -t ${USER}@ip1 ssh -t ${USER}@ip2 sudo su - oracle /path/to/my/script/export_db.sh $ORACLE_PASS #system ssh -t ${USER}@ip1 ssh -t ${USER}@ip2 sudo su - oracle /path/to/my/script/export_db.sh $ORACLE_PASS #use correct prompt set prompt ":|#|\\\$" expect "password:" send "$PWD\r" expect "Enter passphrase for key" send "$PWD\r" expect "password for $USER:" send "$PWD\r"
Pour résumer le "spawn" fonctionne jusqu'au moment de lancer la commande remote
Le "system" fonctionne mais il n'y a aucune interaction "expect" ou "send"
Merci d'avance pour vos réponses.
Partager