从Paramiko接收命令输出 - Python

时间:2016-03-14 18:55:29

标签: python ssh paramiko

我正在创建一个python脚本,将SSH连接到运行一些命令的linux框中。我使用paramiko来实现ssh功能。

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ipadd, username='username', password='password')
chan = ssh.invoke_shell()

chan.send('find / -name "test"')
time.sleep(1)
resp = chan.recv(9999)
print resp

chan.send('find / -name "test1"')
time.sleep(1)
resp = chan.recv(9999)
print resp

命令运行成功,但是当我想要接收输出时(使用chan.recv,它返回以下内容:

find / -name "test"
find / -name "test2"

我相信我应该(并且我需要)将find cmd的输出作为字符串接收。

/data/test
/data/test2

1 个答案:

答案 0 :(得分:0)

我觉得有两件事是错的。首先,

resp = chan.recv(9999)

应该是

resp += chan.recv(9999)

其次,我需要在要求回复之前发送新行

channel.send("\n")