使用ssh远程执行命令Python
我是python新手,无法解决代码无法工作的原因。 我试图通过ssh(使用paramiko)通过文件上的主机名列表连接到多个服务器 奇怪的是,只有当文件中有一个主机名时,代码才起作用,如果文件中有更多主机名,代码就不起作用了。 只是想澄清一下,这个循环运行得很好 希望您能帮助我,提前谢谢 守则: 错误:使用ssh远程执行命令Python,python,ssh,paramiko,Python,Ssh,Paramiko,我是python新手,无法解决代码无法工作的原因。 我试图通过ssh(使用paramiko)通过文件上的主机名列表连接到多个服务器 奇怪的是,只有当文件中有一个主机名时,代码才起作用,如果文件中有更多主机名,代码就不起作用了。 只是想澄清一下,这个循环运行得很好 希望您能帮助我,提前谢谢 守则: 错误: File "C:/Users/zaza/PycharmProjects/linuxTrapSending/linuxTrapSending.py", line 16, in <modu
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
文件“C:/Users/zaza/PycharmProjects/linuxTrapSending/linuxTrapSending.py”,第16行,在
client.connect(行,用户名=用户名,密码=密码)
文件“C:\Python27\lib\site packages\paramiko\client.py”,第301行,在connect中
to_try=list(self._families_和_地址(主机名、端口))
文件“C:\Python27\lib\site packages\paramiko\client.py”,第199行,位于\u families\u和\u地址中
主机名、端口、socket.AF_unsec、socket.SOCK_流)
socket.gaierror:[Errno 11001]getaddrinfo失败
进程已完成,退出代码为1
根据MSDN文档:
getaddrinfo函数提供从ANSI主机名到地址的协议独立转换
以及错误代码11001:
找不到主机。
目前还不知道这样的主机。该名称不是正式的主机名或别名,或者在正在查询的数据库中找不到该名称。协议和服务查询也可能返回此错误,这意味着在相关数据库中找不到指定的名称
您传递的主机名一定是错误的(或者只是一个不存在的主机)。根据MSDN文档: getaddrinfo函数提供从ANSI主机名到地址的协议独立转换 以及错误代码11001: 找不到主机。 目前还不知道这样的主机。该名称不是正式的主机名或别名,或者在正在查询的数据库中找不到该名称。协议和服务查询也可能返回此错误,这意味着在相关数据库中找不到指定的名称
您一定传递了错误的主机名(或者只是一个不存在的主机)。好的,我解决了它。问题是列表中的值被读取为:hostname\n这是导致错误的原因,以及它与文件中的一个主机名一起工作的原因。好的,我解决了它。问题是列表中的值被读取为:hostname\n这是导致错误的原因以及它与文件中的一个主机名一起工作的原因。在循环中,打印
行
,以确保它是您认为的。是的,我打印了,ip地址打印得很好。谢谢在你的循环中,打印行
以确保它是你认为的。是的,我做了,打印ip地址很好。谢谢谢谢,我用主机名替换了ip地址,奇怪的事情发生了。如果我在文件中有一行(一个主机名)它在工作,如果我有多行它会显示完全相同的错误。可能是什么?(为了清楚起见,我已经检查了回路,它正在打印线条)不确定。也许是你通过地址的方式。或者paramiko不接受IPv4地址。是的。。。我从ip改成了主机名谢谢,我用主机名替换了ip地址,奇怪的事情发生了。如果我在文件中有一行(一个主机名)它在工作,如果我有多行它会显示完全相同的错误。可能是什么?(为了清楚起见,我已经检查了回路,它正在打印线条)不确定。也许是你通过地址的方式。或者paramiko不接受IPv4地址。是的。。。我已从ip更改为主机名
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