我正在使用 telnetlib 将简单的 telnet 脚本用于 Juniper 交换机。下面是我的代码:
import telnetlib
HOST = raw_input("Enter host IP address: ")
USER = raw_input("Enter Username: ")
PWD = raw_input("Enter Password: ")
TNT = telnetlib.Telnet(HOST, 23, 10)
TNT.read_until("login:")
TNT.write(USER.encode('ascii') + "\n")
TNT.read_until("Password:")
TNT.write(PWD.encode('ascii') + "\n")
TNT.write("set cli screen-length 10000\nconfigure\nshow\nexit\n")
print (TNT.read_all().decode('ascii'))
TNT.close()
raw_input ("Press any Key to Quit: ")
每当我使用 Juniper 开关运行该程序时,它都会给我这个错误:
Traceback (most recent call last):
File "D:\Python\AuTel Project\Old versions and tials\Telnet (Python 2.7) V1.4.py", line 17, in <module>
print (TNT.read_all().decode('ascii'))
File "C:\Python27\lib\telnetlib.py", line 325, in read_all
self.fill_rawq()
File "C:\Python27\lib\telnetlib.py", line 516, in fill_rawq
buf = self.sock.recv(50)
timeout: timed out
我以前在 Cisco 和 Nortel 上遇到过这个问题,但我可以通过 Cisco 上的“terminal lenght 0”命令和 Nortel 上的类似命令来克服它。我尝试在 Juniper 上使用等效命令(设置 cli screen-length),但仍然遇到相同的错误。我需要知道这个错误的含义是什么,它的原因是什么,以及如何克服它。
此致,