2017-09-07 3 views
0

Je dois exécuter un script pour obtenir une valeur à partir de la sortie, définir une variable puis l'utiliser dans scrip. le script est la suivante:telnetlib - définir une variable à partir d'une valeur spécifiée à partir de la sortie

tn = telnetlib.Telnet(line) 

     tn.read_until("Username: ") 
     tn.write(user + "\n") 
     tn.read_until("Password: ") 
     tn.write(password + "\n") 
     tn.write("enable \n") 
     tn.write(password + "\n") 
     ## GET VOIP INTERFACE 
     tn.write("sh int desc | i VOIP \n") 

la sortie genarate quelque chose comme ceci:

router01011 # sh int desc | i VOIP Gi0/1.110 up up local - VOIP

Alors je dois obtenir les 10 premiers caractères (dans ce cas serait Gi0/1.110) de la dernière ligne et le mettre dans une chaîne variable. Comment pourrais-je faire ça?

Merci!

Répondre

0

Avec python, vous pouvez enregistrer les valeurs dans une variable puis

result = your_var[:10] 

J'espère que cette aide vous

0

@Jorge

Oui, cette partie sera effectivement travailler, mais je Je ne travaille pas pour obtenir la dernière ligne de sortie.

J'utilise le code suivant:

tn.read_until("Username: ") 
     tn.write(user + "\n") 
     tn.read_until("Password: ") 
     tn.write(password + "\n") 
     tn.write("enable \n") 
     tn.write(password + "\n") 
     ####################################### 
     ####################################### 
     ## GET WAN 
     tn.write("sh int desc | i LiETH\n") 
     tn.write("time\n") 
     out = tn.read_until("time") 
     print out 
     result = out[:10] 
     print result 

la vraie sortie sur la console Telnet serait comme ceci:

ra08ddd.br # sh int desc | i Lieth Gi0/0 up up Tular - Lieth ra08ddd.br #

Donc, en fait, je dois obtenir le Gi0/0 dans cet exemple

je force la commande non valide « temps "et en utilisant out = tn.read_until (" time ") mais cela ne fonctionne pas.

Y at-il une autre fonction comme read_until mais pour obtenir la dernière ligne de sortie?