0

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) を使用しようとしましたが、それでも同じエラーが発生します。このエラーの意味とその理由、およびそれを克服する方法を知る必要があります。

よろしくお願いします、

4

4 に答える 4

0

エラーメッセージ

buf = self.sock.recv(50)
timeout: timed out

かなり明白です。

なんらかの理由で接続がタイムアウトしました。

しばらくして非アクティブになったために、間にあるファイアウォールまたはネットワークコンポーネントが接続を閉じたか、リモートサービスが妥当な時間内に応答しませんでした。

于 2011-04-03T08:13:47.367 に答える
0

私も同じ問題を抱えていました。

「TNT.read_all()」を変更するコマンド -> 「TNT.read_some()」と再試行するスクリプト。

于 2012-11-09T22:00:37.480 に答える
0

これは私にとって非常にうまくいきました。

tn.read_very_eager()

読む前に記録されるように、この前に十分な睡眠時間を提供する必要があることを忘れないでください。

于 2016-03-07T16:13:55.970 に答える