我正在创建一个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
答案 0 :(得分:0)
我觉得有两件事是错的。首先,
resp = chan.recv(9999)
应该是
resp += chan.recv(9999)
其次,我需要在要求回复之前发送新行
channel.send("\n")