私はPythonには新しく、私のコードが機能しない理由を解決できません。 ssh(paramikoを使用)経由でファイルにhostnameリストで複数のサーバーに接続しようとしています。sshを使用してリモートからコマンドPythonを実行
何か変わったことが起こりました。ファイルにホスト名が1つだけある場合にのみコードが動作します。それ以上の場合は動作しません。 ループが正常に動作していることを確認するだけです。
あなたは私に助けてくれることを願っております、ありがとうございます!
コード:
import sys import os import paramiko client=paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) username='yadayada' password='ladida' ipFile=open("C:\Users\garmiza\Documents\Scripts\TrapToHpsimLinuxIPList.txt","r") for line in iter(ipFile): print "sending trap from " + line client.connect(line,username=username,password=password) command="snmptrap -v 1 -c public 16.19.203.96 enterprises.232 {clientIP} 6 11003 0".format(clientIP=line) stdin, stdout, stderr = client.exec_command(command) ipFile.close()
エラー:
File "C:/Users/zaza/PycharmProjects/linuxTrapSending/linuxTrapSending.py", line 16, in <module>
client.connect(line,username=username,password=password)
File "C:\Python27\lib\site-packages\paramiko\client.py", line 301, in connect
to_try = list(self._families_and_addresses(hostname, port))
File "C:\Python27\lib\site-packages\paramiko\client.py", line 199, in _families_and_addresses
hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM)
socket.gaierror: [Errno 11001] getaddrinfo failed
Process finished with exit code 1
ループ内で、 'line'を表示して、それがあなたの考えであることを確認してください。 –
ええ、私は、IPアドレスを細かく印刷しました。感謝 – GarAnn