Linux マシンで python (ver. 2.6.2) を実行しており、デバイスの長いリスト (約 300) に telnet で接続できるようにする必要があります。コマンド「sho ser」を送信し、そのコマンドの結果の出力をファイルに返します。リストの下にある連続した各デバイスは、その出力を新しい行に追加します。すべてのデバイスは、ファイル内の別々の行にリストされています
別の投稿から始めたコードを見つけましたが、ここからどこに行くべきかわかりません。「hostlist」と呼んだリストを開くことができますが、Pythonに1つのデバイスにtelnetを指示し、コマンドを実行し、終了してから次のデバイスに進む方法がわかりません。どんな助けでも大歓迎です
import getpass
import sys
import telnetlib
f = open('hostlist', 'r')
HOST = "%s" % f
user = raw_input("Enter your login name: ")
password = getpass.getpass()
tn = telnetlib.Telnet(HOST)
tn.read_until("login: ")
tn.write(user + "\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\n")
tn.write("show ver\n")
tn.write("exit\n")
print tn.read_all()
このエラーを受け取る
Enter your login name: K3grb6hj9ld93a2
Password:
Traceback (most recent call last):
File "test.py", line 11, in <module>
tn = telnetlib.Telnet(HOST)
File "/usr/lib/python2.6/telnetlib.py", line 209, in __init__
self.open(host, port, timeout)
File "/usr/lib/python2.6/telnetlib.py", line 225, in open
self.sock = socket.create_connection((host, port), timeout)
File "/usr/lib/python2.6/socket.py", line 498, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno -2] Name or service not known