0
我使用paramiko/ssh/python嘗試在遠程服務器上運行命令。當我手動ssh並運行有問題的命令時,我得到我想要的結果。但是,如果我使用下面的python(從本網站的另一個線程中選擇),則沒有返回的數據。如果我將命令修改爲「pwd」或「ls」等更基本的命令,我可以獲得輸出結果。任何幫助表示讚賞。沒有從parmiko/ssh命令獲得輸出
謝謝, 馬特
import paramiko
import time
import sys, os, select
import select
hostname='10.15.27.166'
hostport=22
cmd='tail -f /x/web/mlog.txt' #works
#cmd='customexe -args1 -args2' #doesn't work
client = paramiko.SSHClient()
client.load_system_host_keys()
client.connect(hostname=hostname, username=username, password=password)
transport = client.get_transport()
channel = transport.open_session()
channel.exec_command(cmd)
while True:
rl, wl, xl = select.select([channel],[],[],0.0)
if len(rl) > 0:
# Must be stdout
print channel.recv(1024)
time.sleep(1)
那麼,這很大程度上取決於遠程命令的外觀。也許它需要交互式運行(即可能會檢查用戶的終端)。給我們更多關於該命令的信息。 – rbp 2010-06-17 19:51:32