2017-02-25 62 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中没有该命令 –