Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ssh远程执行命令Python_Python_Ssh_Paramiko - Fatal编程技术网

使用ssh远程执行命令Python

使用ssh远程执行命令Python,python,ssh,paramiko,Python,Ssh,Paramiko,我是python新手,无法解决代码无法工作的原因。 我试图通过ssh(使用paramiko)通过文件上的主机名列表连接到多个服务器 奇怪的是,只有当文件中有一个主机名时,代码才起作用,如果文件中有更多主机名,代码就不起作用了。 只是想澄清一下,这个循环运行得很好 希望您能帮助我,提前谢谢 守则: 错误: File "C:/Users/zaza/PycharmProjects/linuxTrapSending/linuxTrapSending.py", line 16, in <modu

我是python新手,无法解决代码无法工作的原因。 我试图通过ssh(使用paramiko)通过文件上的主机名列表连接到多个服务器

奇怪的是,只有当文件中有一个主机名时,代码才起作用,如果文件中有更多主机名,代码就不起作用了。 只是想澄清一下,这个循环运行得很好

希望您能帮助我,提前谢谢

守则:

错误:

  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