Hello !
j'ai un script (non optimisé) en expect afin de me connecter et pousser des firmwares sur des équipements réseau. Généralement, ça peut demander une interaction "humaine" afin de valider la commande, d'où la nécessité d'utiliser "expect".
Mon script fonctionne mais je me suis rendu compte que des équipements sont stackés et donc je pousse mon image sur le 1er équipement du stack mais pas sur les N autres vu que je ne teste pas avant de savoir combien j'ai d'équipements.
Question donc :
comment faire un test pour récupérer le nombre d'équipement que j'ai dans un slot afin de pouvoir récupérer cette valeur et après faire une boucle en fonction de la valeur X ?
mon script (pas du tout optimisé je pense, et je crois qu'il me pète une erreur à la fin mais ça fonctionne quand même, donc je suis preneur des modifications possibles) :
ma commande que je tape pour voir le nombre de slot sur le stack :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 #!/usr/bin/expect #expect.sh set username USER set password PASSWORD set image IMAGE set ip_file "switches.txt" set fid [open $ip_file r] while {[gets $fid ip] != -1} { spawn ssh $username@$ip expect "password" send "$password\n" sleep 1 send "sys \n" sleep 1 send "dns server XXX.XXX.XXX \n" sleep 1 send "dns server XXX.XXX.XXX \n" sleep 1 send "dns resolve \n" sleep 1 send "quit \n" sleep 1 send "delete /unreserved *.bin \n" sleep 1 expect "Continue" send "y\n" sleep 1 send "tftp XXX.XXX.XXX get $image \n" sleep 1 send "boot-loader file $image slot all main \n" sleep 1 expect "Continue" send "y\n" sleep 1 send "save force \n" sleep 1 send "quit \n" interact } close $fid
donc comment en faire une condition pour pouvoir faire une boucle ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 dis device | inc Slot Slot 1 Slot 2 Slot 3 Slot 4 Slot 5
merci pour vos retours avisés !
Partager