我有这个telnet到我的路由器的脚本。我想使用这个脚本来保存各种show命令输出。然而,似乎一旦我将第一个命令写入缓冲区,我就无法清除它。例如,在脚本中它编写命令" show isis adj"到缓冲区然后在脚本中我想运行另一个show命令并保存该输出。这里的问题似乎是缓冲区只是保存了第一个命令" show isis adj"两次?如何清除此缓冲区以便运行多个show命令?
此外,我确实阅读了其他一些堆栈溢出帖子,并使用" Telnet.read_until(期望[,超时])"然而,我尝试了一些,但我仍然无法让它工作。
import telnetlib
import datetime
now = datetime.datetime.now()
host = "x.x.x.x" # your router ip
username = "root" # the username
password = "root"
print("""#######################
CONNECTING TO DEVICE""")
tn = telnetlib.Telnet(host)
tn.read_until("Username:")
tn.write(username+"\n")
tn.read_until("Password:")
tn.write(password+"\n")
tn.write("terminal length 0"+"\n")
print("""#######################
SHOWING ISIS ADJ""")
tn.write("show isis adjacency"+"\n")
tn.write("exit"+"\n")
output1 = tn.read_until("cmd")
print(output1)
print("""#######################
SHOWING BGP SESSIONS""")
tn.write("show bgp sessions"+"\n")
tn.write("exit"+"\n")
output2 = tn.read_until("cmd")
print(output1)
答案 0 :(得分:0)
您两次打印output1
!修复它并使用output2
。
....
print("""#######################
SHOWING BGP SESSIONS""")
tn.write("show bgp sessions"+"\n")
tn.write("exit"+"\n")
output2 = tn.read_until("cmd")
print(output2)