2017-02-25 31 views
0

我導入paramiko使用SSH將命令發送到我的VPS。命令'avconv'適用於我的VPS。但在Python中,通過ssh發送它的標準輸出是'',它什麼也不做。python3如何通過ssh使用avconv?

def sshclient_execmd(hostname, port, username, password, execmd):  
    paramiko.util.log_to_file('paramiko.log') 
    s = paramiko.SSHClient() 
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
    s.connect(hostname=hostname, port=port, username=username, password=password) 
    stdin, stdout, stderr = s.exec_command (execmd) 
    info = stdout.read().decode() 
    s.close() 
    return info 


def merge(hostname, port, username, password, filename): 
    execmd = 'avconv -i \''+filename+'.mp4\' -i \''+filename+'.m4a\' -c copy \''+filename+'.mp4.mp4\'' 
    info = sshclient_execmd(hostname, port, username, password, execmd) 
    print(info) 
+0

你在哪裏調用這些函數? –

+0

只是在主要使用它們() –

+0

你怎麼知道avconv寫入標準輸出? –

回答

0

不知何故'avconv'變成'找不到命令'。所以使用像'/ usr/local/bin/avconv'這樣的路徑可以解決它。

+0

您的ssh用戶在其PATH中沒有該命令 –