가장 빠른 파일 복사 방법


15

CCNET (빌드 서버)에 성공적으로 빌드되면 모든 ASP.NET 웹 사이트 파일이 가상 디렉터리 (% output_dir %)에 복사되므로 개발자가 아닌 사람도 최신 버전의 웹 사이트를보고 테스트 할 수 있습니다. 빌드가 끝나면 다음과 같은 bat 파일이 실행됩니다.

rmdir /s /q "%output_dir%"
mkdir "%output_dir%"
xcopy "%source_dir%*"  "%output_dir%" /e /c /i /q /-y

문제는 복사 속도가 느리고 Windows 2008에서 xcopy보다 빠른 복사 명령이 있는지 궁금합니다. 소스와 대상이 같은 드라이브에 있습니다. 아래는 복사 할 때 사용하는 인수입니다.

/e = copies directories and sub directories including empty ones.
/c = continues copying even if there are errors
/i = if destination does not exist destination is directory
/q = don't display filenames
/-y = confirm overwrite

답변:


21

단지 성능의 관점에서 , XCOPY 또는 ROBOCOPY는 당신에게 비슷한 결과를 제공 할 것입니다. Windows Vista 64 비트 SP2 상자에서 몇 가지 테스트를 수행하여 비교를 수행했습니다. 모든 복사는 내부 7200 RPM Sata II 디스크와 외부 USB 2.0 드라이브 사이 또는 표시된 경우 동일한 내부 드라이브 자체에서 수행되었습니다. 특별한 설정은 수행되지 않았으며 (테스트를 무효화 / 유효하게하는 경우에는 자신의 마음을 구성하십시오) 명령을 배치 파일에 입력하여 실행하십시오. PowerShell은 시작 및 중지 시간을 캡처하는 데 사용되었습니다. 몇 번의 패스 후에 내가 사용한 도구의 평균은 다음과 같습니다.

파일 : 732,909,568 바이트 (698MB), 1 개의 ISO 파일이 동일한 내부 디스크의 다른 디렉토리에 복사되었습니다.

copy      6 secs (ex. copy G:\folder1\* G:\folder2\)
xcopy     6 secs (ex. xcopy G:\folder1 G:\folder2 /I /E /Y /R)
robocopy  6 secs (ex. robocopy G:\folder1\ G:\folder2 /E /NP)
teracopy 28 secs (ex. TeraCopy.exe Copy G:\folder1\ G:\folder2\)
fastcopy 19 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=G:\folder2)  

파일 : 732,909,568 바이트 (698MB), 1 개의 ISO 파일이 외부 USB 디스크에 복사되었습니다.

copy     36 secs (ex. copy G:\folder1\* I:\folder2\)
xcopy    35 secs (ex. xcopy G:\folder1 I:\folder2 /I /E /Y /R)
robocopy 36 secs (ex. robocopy G:\folder1\ I:\folder2 /E /NP)
teracopy 36 secs (ex. TeraCopy.exe Copy G:\folder1\ I:\folder2\)
fastcopy 38 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=I:\folder2)  

파일 : 45,039,616bytes (42.9MB) 5 개의 임의 파일이 외부 USB 디스크로 복사되었습니다.

copy      6 secs (ex. copy G:\folder1\* I:\folder2\)
xcopy     5 secs (ex. xcopy G:\folder1 I:\folder2 /I /E /Y /R)
robocopy  6 secs (ex. robocopy G:\folder1\ I:\folder2 /E /NP)
teracopy 12 secs (ex. TeraCopy.exe Copy G:\folder1\ I:\folder2\)
fastcopy  6 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=I:\folder2)

파일 / 디렉토리 : 1,087,180,800 바이트 (1.01GB), 27 개 파일 / 8 디렉토리가 외부 USB 디스크에 복사되었습니다.

copy     *Not included in test
xcopy    57 secs (ex. xcopy G:\folder1 I:\folder2 /I /E /Y /R)
robocopy 58 secs (ex. robocopy G:\folder1\ I:\folder2 /E /NP)
teracopy 56 secs (ex. TeraCopy.exe Copy G:\folder1\ I:\folder2\)
fastcopy 60 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=I:\folder2)

이것은 철저한 테스트는 아니지만이 장르에서 가장 널리 사용되는 도구 중 일부에서 실제 시나리오를 신속하게 처리하면 xcopy 또는 Robocopy (성능 관점에서만)를 사용하는 것이 매우 안전하다는 것을 알 수 있습니다. 또한 Robocopy 옵션 /NP(No Progress)은 0 시간을 절약합니다. 그렇다고해서 xcopy 이외의 다른 것을 사용하면 이점을 얻을 수 없다는 의미는 아닙니다. Robocopy는 Wikipedia 의 훌륭한 예입니다 .

Robocopy는
다음을 포함하여 내장 Windows 복사 및 xcopy 명령 이상의 기능으로 유명합니다 .

  • 네트워크 중단을 허용하고 이전에 중단 된 곳에서 복사를 재개 할 수있는 기능
  • 자주 잊혀지는 수많은 명령 줄 스위치없이 속성, 소유자 정보, 대체 데이터 스트림, 감사 정보 및 타임 스탬프를 올바르게 복사 할 수 있습니다.
  • NTFS ACL (/ COPYALL 제공시)을 올바르게 복사하고 Windows NT "백업 권한"(/ B)을 지정하여 관리자가 읽기 어려운 파일을 포함하여 전체 디렉토리를 관리자에게 복사 할 수 있습니다.
  • 파일을 열 수없는 경우 프로그램 가능한 자동 재시도 횟수와 함께 기본적으로 지속성이 있습니다.
  • "미러"모드 : 소스에 더 이상 존재하지 않는 대상에서 파일을 선택적으로 삭제하여 트리를 동기화 상태로 유지합니다.
  • 내장 된 XCOPY 유틸리티와 충돌하는 대량의 파일을 복사하는 기능
  • 지속적으로 업데이트되는 명령 줄의 진행률 표시기.
  • 256 자 (최대 이론적 32,000 자)를 초과하는 긴 파일 및 폴더 이름을 오류없이 복사 할 수 있습니다.

5

나는 일반적으로 다음을 사용합니다.

robocopy source dest /E /MIR

또는 다른 매개 변수의 변형 – 아마도 /NFL /NDL /NS /NC /NP"quiet"과 일치


네, / NP는 빠른 robocopies의 필수입니다
Ivo Looser

언제 어디서나 소스에서와 동일한 내용을 만들면 Robocopy 명령에서 / MIR 또는 / PURGE를 사용합니다.
Ivo Looser 2016 년

1

실제로 네트워크를 제거함으로써 실제로 테스트를 제한했습니다. 네트워크 공유 사용을 고려할 수도 있는데, 이는 많은 관리 작업이 될 것입니다.

또한 FTP를 사용하고 CIFS를 모두 건너 뛰어야합니다. Eseutil.exe는 여기에 넣을 수있는 또 다른 유틸리티입니다. (4 개의 종속 dll과 함께 다른 곳에서 사용할 수있는 Exchange 유틸리티)

그런 다음 결과를 확인하고 싶습니다.


1

같은 목적으로 XCopy를 사용합니다. 또한 서버에 다른 NIC를 추가하여 별도의 서브넷에 배치했습니다. 그런 다음 파일을 전송하는 서버에 직접 연결했습니다. 이렇게하면 두 대의 컴퓨터가 하나의 서브넷을 통해 복사 된 데이터를 이동하고 사용자는 LAN에 직접 연결된 두 번째 nic을 통해 계속 액세스 할 수 있습니다.


1

소스와 대상이 동일한 드라이브에 있지만 둘 다 빌드 서버에 있습니까?

빌드 서버가 소스 및 대상의 위치 인 경우 한 폴더 또는 다른 폴더를 다른 드라이브 (다른 컨트롤러)로 이동하는 것이 좋습니다.

빌드 서버가 소스 및 대상의 위치가 아닌 경우 (빌드 드롭이 빌드 된 서버에 항상있는 것은 아님) 소스 및 대상 폴더가있는 서버에서 태스크를 작성하십시오. 그런 다음 해당 작업을 원격으로 시작하십시오.


1

나는 몇 년 동안 여러 부를 복사해야했습니다. 내부에는 12M 이상의 이미지가있는 단일 디렉토리 (약 400GB)가있는 Windows Server 2008 R2 시스템이 하나 있습니다.

분명히 나는 ​​그것이 큰 디렉토리는 아니지만 선호합니다.

  • XCOPY는 큰 폴더의 복사본을 처리하지만 큰 디렉터리에서 이동하려고하면 충돌합니다.
  • ROBOCOPY는 문제없이 복사를 처리하며 복사시 더 나은 진행률 표시기를 제공한다는 점에서 훨씬 더 좋은 경험입니다.
  • 작은 디렉토리의 XCOPY가 더 빠릅니다.

어쨌든, 나는 방금 큰 디렉토리의 특이한 특성 때문에 그들과 경험을 나눌 것이라고 생각했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.