从 Paramiko 接收命令输出 - Python
Receiveing Output of Command from Paramiko - Python
我正在创建一个 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,它 returns 以下内容:
find / -name "test"
find / -name "test2"
我相信我应该(而且我需要)以字符串形式接收 find cmd 的输出。
/data/test
/data/test2
看来我错了两件事。首先,
resp = chan.recv(9999)
应该是
resp += chan.recv(9999)
其次,我需要在请求回复之前换行
channel.send("\n")
我正在创建一个 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,它 returns 以下内容:
find / -name "test"
find / -name "test2"
我相信我应该(而且我需要)以字符串形式接收 find cmd 的输出。
/data/test
/data/test2
看来我错了两件事。首先,
resp = chan.recv(9999)
应该是
resp += chan.recv(9999)
其次,我需要在请求回复之前换行
channel.send("\n")