Bonjour,

J'aimerais connaitre mes équipements qui serait configurés avec le protocole telnet.
Pour cela j'ai conçu un script qui va se connecter sur tous mes équipements et qui va passer une commande.
Le script fonctionne parfaitement, mais je rencontre un soucis avec les équipements qui justement ne sont pas configurés avec le protocole telnet ; sinon ssh.

J'aimerais insérer une condition à savoir si la connexion telnet n'est pas établit alors on passe à l'équipement suivant.
Je pense que cela peut-etre fait avec un if, mais je ne sais pas comment le mettre en place.

Voici pour ce qui est du script :

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
#!/usr/bin/expect -f
 
    #Option session
    set force_conservative 1 ;
    match_max 1000000000
    set timeout 5
 
    #Edit for User
    set user admin
 
    #Edit for Password
    set password XXXXXXXXX
 
    #Edit for prompt
    set prompt "#"
 
    #Get IP List from hosts.txt
    set f [open "/tmp/hosts.txt"]
    set data [read $f]
    close $f
 
 
        foreach line [split $data \n] {
            if {$line eq {}} continue
            spawn telnet $line
                sleep 2
 
                expect "Username:"
                send "$user\r"
                expect "assword:"
                send "$password\r"
                expect "$prompt"
                send "terminal length 0\r"
                expect "$prompt"
                set timeout 120;
                send "show run | i ssh\r"
 
                     expect "$prompt"
                        set output $expect_out(buffer)
                        if {[regexp { } $output matched sub1 sub2]} {
                                                        set SSH [open /tmp/confirm.list a+]
                                                        puts $SSH "$line : Connexion Telnet:"
                                                        close $SSH
                                                } else {
                                                        set SSH [open /tmp/confirm.list a+]
                                                        puts $SSH "$line : OK"
                                                        close $SSH
                                                        }
                                                send "exit\r"
                                                continue
 
}
Sachant qu'une connexion telnet est repérée par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Trying X.X.X.X...
Connected to X.X.X.X.
Escape character is '^]'.
et le refus est repéré par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
telnet: connect to address X.X.X.X: Connection refused