저는 Python을 처음 사용하기 때문에 코드가 작동하지 않는 이유를 해결할 수 없습니다. ssh (paramiko 사용)를 통해 파일에 호스트 이름 목록별로 여러 서버에 연결하려고합니다.ssh를 사용하여 원격으로 명령 Python을 실행하십시오.
이상한 일이 발생합니다. 파일에 호스트 이름이 하나만있는 경우에만 코드가 작동합니다. 그 이상인 경우 코드가 작동하지 않습니다. 루프가 정상적으로 작동하는지 분명하게 알 수 있습니다.
당신이 저를 도울 수 있기를 바랍니다, 미리 감사드립니다!
코드 :
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