【Python】CiscoルーターにTelnetしてログ取得 for文利用


2台のルータに自動でアクセスして、ログ取得するために

for文使って、1台目→2台目と順番にアクセスできると思ったが

変数が上書きされて、上手くいかず。。

想定では、

R1> show clock

R1>exit

R2> show clock

R2>exit

になると思ってたのですが。。

f:id:slavex:20210630232909p:plain

 

import getpass
import telnetlib

IPlist = ["192.168.0.100","192.168.0.101"]
Password = getpass.getpass()

for x in IPlist:
tn = telnetlib.Telnet(x) #リストの先頭から順番にTelnet

tn.read_until(b"Password:") #Password:」表示まで待機
tn.write(Password.encode("ascii")+ b"\n") #パスワード入力

#Ciscoコマンド実行
tn.write(b"show clock"+ b"\n") #show clockコマンド実行
tn.write(b"exit"+b"\n") #exitコマンド実行

print(tn.read_all().decode("ascii"))

 

改善できたらまたうpします。