2017-05-08 13 views
0

TFSリリースでは、「Windows Machine File Copy」というリリース手順があります。カバーの下では、robocopyを使用してソースからデスティネーションにファイルをコピーします。これに先立ち解放ステップが正常に動作するWindowsサービスを停止しているRobocopy PURGE(またはMIR)オプションは、使用中のファイルを削除せず、エラーを報告しない

*.* /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /MT:8 /R:1000000 /W:30 

:ここ

は、それが使用するオプションです。スクリプトの最後にも3秒の遅延があります。私たちは、シャットダウン中にすべての通信を終了するようにこのサービスをコーディングしたと思うので、終了するのに3秒以上かかります。この場合、ファイルの一部が使用中です。 Robocopyはコピーするファイルに対してうまく機能しているようですが、* EXTRAファイルは別のストーリーです。削除されず、再試行されません。さらに、ログには多くのエラーがあるにもかかわらず、最後のレポートにエラーは表示されません。

2017-05-08T15:37:07.7528791Z ------------------------------------------------------------------------------- 
2017-05-08T15:37:07.7528791Z ROBOCOPY  ::  Robust File Copy for Windows        
2017-05-08T15:37:07.7528791Z ------------------------------------------------------------------------------- 
2017-05-08T15:37:07.8622643Z Started : Monday, May 8, 2017 10:37:07 AM 
2017-05-08T15:37:07.8622643Z Source : F:\Source 
2017-05-08T15:37:07.8622643Z  Dest : \\myserver\E$\destination\ 
2017-05-08T15:37:07.8622643Z  Files : *.* 
2017-05-08T15:37:07.8622643Z   
2017-05-08T15:37:07.8622643Z Options : *.* /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /MT:8 /R:1000000 /W:30 
2017-05-08T15:37:07.8622643Z ------------------------------------------------------------------------------ 
2017-05-08T15:37:09.0185873Z  *EXTRA File   269824 \\myserver\E$\epay\destination\HtmlAgilityPack.pdb 
2017-05-08T15:37:09.5186163Z  *EXTRA File24 \\myserver\E$\destination\Common.pdb 
2017-05-08T15:37:09.5186163Z 2017/05/08 10:37:09 ERROR 5 (0x00000005) Deleting Extra File \\myserver\E$\destination\Common.pdb 
2017-05-08T15:37:09.5186163Z Access is denied. 

あなたは明らかに誤りを見ることができますが、レポートには、すべてのエラーが表示されないと解放ステップは、私たちのリリースでは、潜在的な問題を引き起こして成功しました。

2017-05-08T15:37:46.8492207Z    Total Copied Skipped Mismatch FAILED Extras 
2017-05-08T15:37:46.8492207Z  Dirs :   1   1   0   0   0   0 
2017-05-08T15:37:46.8492207Z Files :  54  54   0   0   0  49 
2017-05-08T15:37:46.8492207Z Bytes : 8.45 m 8.45 m   0   0   0 8.55 m 
2017-05-08T15:37:46.8492207Z Times : 0:01:49 0:00:25      0:00:00 0:00:13 

私が述べたように、それが失敗した削除を再試行しようとしませんが、それは私がログに証拠を見てきたのと同じエラーによる失敗したファイルをコピーして再試行します。

ファイルを削除できなかった場合、robocopyに失敗した削除を再試行し、エラーを報告する方法はありますか?私はすべてのドキュメントを読みましたが、この問題や回避策に関連するものは見つかりませんでした。何か案は?

+0

。私はTFS2017.1であなたの問題をテストしようとし、ファイルが使用されている場合、Windowsファイルマシンのコピーはそれを削除できず、このファイルの使用が完了するのを待ちます。ファイルの使用が終了すると、ファイルが削除されます。私のテストの[画像](https://1drv.ms/i/s!AopgZUVNxLwJgUT8-flyw4CN22xJ)を見て、それは何度もそのファイルを削除するために再試行します。 –

+0

問題を再現するための手順を教えてください。 –

+0

@ Tingting0929-MSFT - 画像に使用中のファイルが表示され、コピーされたファイルが再試行されます。これは私にとってもうまくいきます。ターゲットディレクトリで使用されているソースディレクトリ内のファイルをいくつか削除してみてください。 –

答えて

0

「余分な」ファイルは、コピー先フォルダ内のファイルであり、ソースフォルダ内のファイルではありません。これによると、私は "Common.pdb"があなたのリリースサーバーではなく、このファイルを削除する権限を持っていないことを意味するあなたのリリースサーバー上の任意のサービス/アプリケーションによって生成されるのだろうかと思います。また、robocopyエラー0x00000005は通常、アクセス許可の問題によって発生します。したがって、 "Common.pdb"ファイルのパスにアクセスして権限を確認し、Windows Machine File Copyタスクで設定したアカウントで手動で削除しようとする必要があります。

+0

それは良い点です。間違いなくそれをチェックし、アップデートを提供します。これは、再試行のメカニズムが再試行していない理由を説明しているかもしれません。おそらく、「アクセス拒否」エラーで再試行しない可能性があります。ポイントは何ですか? –

+0

これは許可の問題ではありません。サービスを停止してから10秒後にスクリプトを実行すると、EXTRAファイルは正常に削除されます。たぶん唯一の解決策は、まずフォルダを一掃してからコピーすることです。欠点は、TFSにはリモートサーバーからフォルダを削除するための組み込みステップがないことです。 –

+0

@ChrisGesslerファイルが使用されている場合、エラーはエラー32でなければならないので、配線済みです。ファイルと停止したWindowsサービスとの関係は何ですか?サービスを停止した後にサーバー上で手動でファイルを削除するとエラーが発生しましたか? –

0

エラーコードを試しましたか? %ERRORLEVEL% 8以下

https://ss64.com/nt/robocopy-exit.html

ものは、あなたが望むレベルのように思えます。 robocopyを-exit.htmlから

コピーペースト:

使用TFSのバージョンは何
ROBOCOPY \\Server1\reports \\Server2\backup *.* 
IF %ERRORLEVEL% LSS 8 goto finish 

Echo Something failed & goto :eof 

:finish 
Echo All done, no fatal errors. 
+0

これはおそらく私が必要とするものです。私は少しの研究をしなければならず、おそらく対応するためにMicrosoftの仕事を修正する必要があります。単純な仕事ではありませんが、ありがとう! –

関連する問題