サブプロセスと popen を介して rsync コマンドを実行しようとしています。問題が発生した場所に rsh サブコマンドを配置しない限り、すべて問題ありません。
from subprocess import Popen
args = ['-avz', '--rsh="ssh -C -p 22 -i /home/bond/.ssh/test"', 'bond@localhost:/home/bond/Bureau', '/home/bond/data/user/bond/backups/']
p = Popen(['rsync'] + args, shell=False)
print p.wait()
#just printing generated command:
print ' '.join(['rsync']+args)
「--rsh="ssh -C -p 22 -i /home/bond/.ssh/test"」をさまざまな方法でエスケープしようとしましたが、問題ではないようです。
rsync: Failed to exec ssh -C -p 22 -i /home/bond/.ssh/test: No such file or directory (2) というエラーが表示される
その時点で出力したのと同じ引数をコピーして貼り付けると、コマンドが正しく実行されます。
ありがとう。