2017-02-25 4 views
0

sshを使用してVPSにコマンドを送信するためにparamikoをインポートします。コマンド 'avconv'は私のVPSでうまく動作します。しかし、Pythonでは、sshを介してそれを送信し、そのstdoutは ''、それは何もしません。python3はavconvをssh経由でどのように使用しますか?

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

main()でそれらを使用しています –

+0

avconvがstdoutに書き込むことをどのように知っていますか? –

答えて

0

「avconv」は「コマンドが見つかりません」となります。だから、 '/ usr/local/bin/avconv'のようなパスを使って修正することができます。

+0

あなたのsshユーザはPATHにそのコマンドを持っていません –

関連する問題