Juniper スイッチへの単純な telnet スクリプトに telnetlib を使用しています。以下は私のコードです:
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 length 0」コマンドと Nortel の同様のコマンドで解決できました。Juniper で同等のコマンド (set cli screen-length) を使用しようとしましたが、それでも同じエラーが発生します。このエラーの意味とその理由、およびそれを克服する方法を知る必要があります。
よろしくお願いします、