2017-05-08 4 views
0

TFS 릴리스에는 "Windows Machine File Copy"라는 릴리스 단계가 있습니다. 커버 아래에서 robocopy를 사용하여 소스에서 대상으로 파일을 복사합니다. 이전에이에Robocopy PURGE (또는 MIR) 옵션이 사용중인 파일을 삭제하지 않고 오류를보고하지 않습니다.

*.* /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 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의 작업을 수정해야 할 것입니다. 간단한 작업이 아니라 감사합니다! –