サブプロセスを使用して robocopy を呼び出し、リモート ホストからログ ファイルを同期する Python スクリプトを作成しました。
そのようです:
program = 'Robocopy'
options = ['/S']
args.append(program)
args.append(options)
args.append('\\\\%s\%s' % (hostname, source_path))
args.append(local_path)
proc = subprocess.Popen(args=args, shell=True, stdout=cmd_log, stderr=error_log)
ここで、source_path はリモート ホスト上のパスで、local_path はローカル ホスト上のパスです (両方の UNC パス)。コードは通常、デーモン プロセスで実行され、数時間ごとに開始されます。このコードをコマンド プロンプトで直接実行することもできます。デーモン プロセスで実行しているときに、Robocopy からエラーが発生することがあるようです。
エラー コード 6:「ハンドルが無効です」
しかし、コマンドプロンプトでこれを実行すると、エラーは発生しません。Web 検索で見つけたものから、これは、転送中のファイルで既に開いているファイル ハンドルに関連している可能性があります。このエラーとそれを回避する方法に関する詳細情報はありますか?