0

モジュールの 1 つは、リモート フォルダーの rsync バックアップをローカル デバイスに作成します。

これは私が問題を抱えているコードの一部です:

            try:
                process = subprocess.Popen(
                    ['sshpass',
                    '-p',
                    password,
                    'rsync',
                    '-avz',
                    '-e',
                    'ssh -o StrictHostKeyChecking=no',
                    '-p',
                    port,
                    '{}@{}:{}'.format(user, host, folder),
                    dest_folder],
                    stdout=subprocess.PIPE
                )
                output = process.communicate()[0]
                if int(process.returncode) != 0:
                    print('Command failed. Return code : {}'.format(process.returncode))
                    exit(1)
                return output
            except Exception as e:
                print(e)
                exit(1)

表示されるエラーは次のとおりです。

Unexpected remote arg: debian@12.345.67.89:/folder1/folder2/
rsync error: syntax or usage error (code 1) at main.c(1372) [sender=3.1.3]
Command failed. Return code : 1

問題は Popen の配列にあると思います。bashで単一のコマンドを実行すると、rsyncが正常に実行されます。

subprocess.Popen 配列から何を変更する必要がありますか?

4

1 に答える 1