2016-03-14 80 views
0

我正在創建一個python腳本,將SSH放入運行幾個命令的linux框中。我使用paramiko的SSH功能。從Paramiko接收命令的輸出 - Python

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" 

我相信我應該(我需要)接收輸出的發現CMD爲字符串。

/data/test 
/data/test2 
+0

http://stackoverflow.com/questions/8089498/can-i-發送新線捕獲遠程執行的命令與它的輸出在日誌文件pytho 檢查此鏈接,如果它解決您的問題 – vipulb

回答

0

看來我有兩件事情是錯誤的。首先,

resp = chan.recv(9999) 

應該已經

resp += chan.recv(9999) 

其次,我需要之前要求的響應

channel.send("\n")