在TFS版本中,有一个名为" Windows Machine File Copy"的发布步骤。在封面下,它使用robocopy将文件从源复制到目标。
以下是它使用的选项:
*.* /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /MT:8 /R:1000000 /W:30
此前的发布步骤是停止Windows服务,这可以正常工作。在剧本结束时甚至还有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 File 321024 \\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 :(得分:1)
您是否尝试过使用错误代码?
https://ss64.com/nt/robocopy-exit.html
低于%ERRORLEVEL%
8的任何内容似乎都是您想要的级别。
从robocopy-exit.html复制粘贴:
ROBOCOPY \\Server1\reports \\Server2\backup *.*
IF %ERRORLEVEL% LSS 8 goto finish
Echo Something failed & goto :eof
:finish
Echo All done, no fatal errors.
答案 1 :(得分:0)
“Extra”文件是目标文件夹中的文件,但不在源文件夹中。根据这一点,我想知道“Common.pdb”是由您的发布服务器上的任何服务/应用程序生成的,而不是您的构建/发布,这意味着您可能没有权限删除此文件。并且robocopy错误0x00000005通常也是由权限问题引起的。因此,您需要转到“Common.pdb”文件的路径以检查权限,并尝试使用您在Windows计算机文件复制任务中配置的帐户手动删除它。