从Paramiko-Python接收命令的输出
我正在创建一个python脚本,该脚本将SSH放入一个运行一些命令的linux框中。我正在使用paramiko实现ssh功能从Paramiko-Python接收命令的输出,python,ssh,paramiko,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()
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
看来我有两件事做错了。首先
resp = chan.recv(9999)
应该是
resp += chan.recv(9999)
其次,我需要在请求回复之前发送一条新的线路
channel.send("\n")
检查此链接是否解决了您的问题