-- edit par Jackho : J'aurai peut etre du mettre ce message dans la section Réseau.... --
Bonjour à tous,
j'ai commencé hier à me plonger dans Python pour réaliser un programme se connectant en telnet sur plusieurs routeurs pour leur envoyer des lignes de commandes.
Je récupère dans 2 fichiers l'adresse des routeurs (host) (et le mdp) et dans l'autre fichier les commandes à exécuter.
Mais il se peut qu'une de ces commandes ne s'éxécute pas correctement auquel cas une erreur est retournée (sans pour autant empecher le programme de continuer son exécution).
Par exemple en rentrant une mauvaise ligne de commande je pourrai ressortir avec l'erreur "% Invalid input detected at '^' marker."
Je souhaiterai donc etre capable de détecter cette erreur afin d'afficher un message d'erreur et modifier le fonctionnement du programme (éviter l'insertion des autres lignes de commandes).
J'ai essayé ceci, qui ne marche pas:
if tn.read_until("% Invalid input detected at '^' marker."):
et j'ai aussi essayé, sans succes, avec tn.expect("% Invalid input detected at '^' marker.")
Comment puis-je faire ? Je suis sur que c'est tout bete mais je ne sais pas comment faire.
Merci d'avance
_____ Sylvain _____
Voici mon code :
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 # -*- coding: cp1252 -*- import os import sys import telnetlib login = "calcejo" ## Boucle sur liste.txt contenant les hostnames file=open('liste.txt','r') for ligne in file.readlines() : donnees = ligne.split() Host = donnees[0] password = donnees[1] try : tn = telnetlib.Telnet(Host) print "_______________________" print Host ok = tn.read_until("Username: ",1) print ok tn.write(login + "\n") if password: tn.read_until("Password: ") tn.write(password + "\n") ## Boucle sur commandes.txt contenant les commandes file2=open('commandes.txt','r') for ligne2 in file2.readlines() : tn.write(ligne2) tn.write("exit\n") print tn.read_all() file2.close() except: print "_______________________" print "Erreur d'accès en Telnet sur : ", Host continue ## Ferme le fichier liste.txt file.close()
Partager