質問

私は、リモートホストからログファイルを同期するための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: 'ハンドルが無効です'

しかし、私は、コマンドプロンプトでこれを実行すると、私はエラーを取得していません。私は、これはすでに転送されたファイル上で開いているハンドルをファイルに関連するウェブ検索で見つけたものから。誰もがそれを避けるために、このエラーおよび方法に関する詳細な情報を持っていますか?

役に立ちましたか?

解決

のためのGoogle検索の "robocopyをハンドルが無効です"あなたは「バックアップモード」用/ bオプションを使用して成功を見つけるかもしれない提案します。

問題が解決しない場合であっても、私は彼らがコピーされた(あるいは、それをログに記録)されているように、出力するファイル名をコードを追加することをお勧めしたい、とあなたが特定の失敗したファイルを特定したら、あなたもまた、何実現することができます問題がある。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top