Bonjour,
Je suis entrain de développer un programme en perl qui permet de me connecter sur différentes machines et de récupérer des informations systèmes et/ou des informations qui sont stockées en base de données.
Afin de récupérer les informations stockées en base, je dois passé par un script EXPECT. Quelque chose dans le script ne fonctionne pas mais je ne sais pas quoi :
J'ai testé en lancant le script dans un shell mais aussi via mon script perl.
Pour le débugg, j'ai utilisé l'option -d etVoici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part set exp_internal 1;
Code expect : 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
30
31 #!/usr/bin/expect -f set Machine [lindex $argv 0]; set timeout 10; set force_conservative 1 ; set exp_internal 1; set cmd [open /chemin/vers/fichier/commande/cmd.cmd r] # Il contient quelques commandes Openet spawn ssh user@$Machine; expect "password:"; send "passwd"; expect "$"; send "ssh user2@$Machine\r"; expect "password:"; send "passwd\n"; expect "Prompt"; send "OpenDB\r"; while {[gets $cmd line] != -1} { expect { "solsql>" { send "$line\r"; } timeout { exit 1; } } } expect { "solsql>" { send "exit\n"; } }
La première ligne rouge indique la ligne de l'erreurSQL statements terminated by a semicolon.\r\nExit by giving command: exit;\r\nsolsql>"
": must be -i, -h, -s, -null, -0, -raw, -break, or --
while executing
"send "$line\r""
invoked from within
"expect -nobrace solsql> {
send "$line\r";
} timeout {
exit 1;
}"
invoked from within
"expect {
"solsql>" {
send "$line\r";
}
timeout {
exit 1;
}
}"
("while" body line 2)
invoked from within
"while {[gets $cmd line] != -1} {
expect {
"solsql>" {
send "$line\r";
}
timeout {
exit 1;
}
}
}"
(file "/mon/repertoire/bin/test2.exp" line 17)
write() failed to write anything - will sleep(1) and retry...
La 2nd ligne en rouge indique que je suis connecté à la base. De plus le prompt de la base est présent solsql>.
Si vous avez une idée du pourquoi du comment je suis preneur !
Merci d'avance
Partager