如何解决-连接到192.168.X.X关闭?

时间:2019-07-09 05:48:38

标签: python ssh

我的代码如下:

def op():
    cmd = "ssh -t user@ip top -bn 1 >data.txt"
    os.system(cmd)
    #does some other operations and then returns some variables, say a,b,c
    return (a,b,c)


k=1
while k<5:
    print(op())
    k+=1

第一次while循环运行(在k = 1时),我得到了预期的变量值。但是,在随后的每次迭代中,我都会收到以下错误消息:

Connection to 192.168.xxx.xxx closed.

我所有的变量也是空的。如何解决?

我认为这与“关闭” SSH连接有关,然后在每次迭代开始时重新启动它,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

此答案可能不是您问题的直接解决方案。但是,始终建议使用python ssh接口,而不是直接执行shell命令。

Paramiko是一种这样的python sshv2实现。

当前文档:http://docs.paramiko.org/en/2.6/

示例代码: SSH examples


    import paramiko 
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
        ssh.connect('localhost', username=username, password=password)
    except paramiko.SSHException:
        print "Connection Failed"
        quit()

stdin,stdout,stderr = ssh.exec_command("top -bn")

for line in stdout.readlines():
        print line.strip()
ssh.close()