본문 바로가기

유용한 팁

robocopy를 이용하자

반응형
command 명령어 유용한 명령어중 하나..robocopy

 

 

용량이 큰 단일 파일들이 있다면 수동으로 복사해도 문제는 없지만

문서라던지 사진 음악파일들은 많을때는 수동복사를 하게되면 개수카운터를 먼저 실행을 시켜서 오래걸릴수도 있으며

 

혹시나 중복된파일이나 손상된파일들로 인해 중간에 오류메세지를 클릭(덮어쓰기 건너뛰기등)을 해줘야하는 불편함이 있습니다.

 

 

그럴땐 그냥 robocopy

중요한 파일 복사

 

윈도우 command 명령어 이기 때문에 사용하기엔 쉬운데

 

반대로 command 명령어 이기 때문에 접근하기가.....

 

많이 사용되는 실행창

 

윈도우버튼에서 마우스 오른쪽 누르면 사진과 같이 실행을 눌러도 되고

단축키 윈도우 키 + R 버튼을 누르면

 

 

실행창에 cmd 를 입력하면 확인 누르면 공포(?)의 검정색커멘드창이 뜹니다

 

 

단순하게 robocopy 명령어만 쳐도 간단한 사용법이 나옵니다.

 

Microsoft Windows [Version 10.0.19044.3803]
(c) Microsoft Corporation. All rights reserved.

C:\Windows\system32>robocopy

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Windows용 견고한 파일 복사
-------------------------------------------------------------------------------

  시작됨: 2023년 12월 18일 월요일 오후 11:46:48
      간단한 사용법 :: ROBOCOPY 원본 대상 /MIR

               원본 :: 원본 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)
               대상 :: 대상 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)
               /MIR :: 전체 디렉터리 트리를 미러링합니다.

    자세한 사용법을 보려면 ROBOCOPY /?를 실행하십시오.


****  /MIR은 파일을 복사할 수 있을 뿐만 아니라 삭제할 수도 있습니다.

C:\Windows\system32>

 

 

가장 간단한 방법이죠

robocopy 원본경로 대상경로 /옵션값

 

▶일반적으로 많이 사용되는 robocopy 옵션's

/R[:n] 실패한 복사본에 대한 다시 시도 횟수입니다.(옵션을 따로 넣지 않으면 기본값 1백만입니다.)
/W[:n] 다시 시도 간 대기 시간입니다. (옵션을 따로 넣지 않으면 기본값 30초입니다.)
/E: 비어 있는 디렉터리를 포함하여 하위 디렉터리를 복사합니다.
/Z: 다시 시작 모드에서 파일을 복사합니다.
/MOV 파일을 이동합니다. 복사한 다음 원본에서 삭제합니다.
/MOVE 파일 및 디렉터리를 이동합니다. 복사한 다음 원본에서 삭제합니다.
/MT[:n] n개의 스레드가 있는 다중 스레드를 복사합니다(옵션을 따로 넣지 않으면 8). [n은 1 이상 128 이하여야 합니다.]
/LOG:file: 상태를 로그 파일에 출력합니다. 기존 로그를 덮어씁니다. (꼭 확장자까지 넣어야됩니다.)

ex) robocopy source_path destination_path /E /Z /MT:8 /LOG:robocopy_log.txt

 

 

/MT 스레드를 어떻게 확인하는지는...

 

작업표시줄에 마우스 오른쪽을 누르면 작업관리자를 클릭 할 수가 있습니다.

 

 

 

 

작업관리자에서 많은 탭 중 성능탭을 클릭해줍니다.

 

 

 

성능탭에서 나의 컴퓨터 CPU, 메모리 , 디스크, 이더넷을 확인 할수 있는데..

 

사진과 같이 CPU 그래프에서 마우스 오른쪽을 누르면 전체 이용률 , 논리 프로세서가 있습니다 (기본값이 전체 이용률일겁니다.)

 

 

논리 프로세서를 선택해주면 우리컴퓨터의 논리프로세서 즉 스레드 개수를 확인할수가 있습니다.

 

 

 

 

그럼 앞에서 설명 한 것 처럼 옵션값을 적용해서 명령어를 넣어 볼게요!

robocopy D:\robocopy_source G:\robocopy_destination /E /Z /MT /LOG:G:\robocopy_destination\robocopy_log.txt

 

그럼 다음과 같이 로그파일 만 나옵니다. (우리의 PC는 열일을 하게 될 겁니다.)

 

 

robocopy D:\robocopy_source G:\robocopy_destination /E /Z /MT /LOG:G:\robocopy_destination\robocopy_log.txt
해석은 다음과 같습니다.
D드라이브에 있는 파일을 G드라이브로 복사해라
[/E]비어있는 디렉토리 하위포함 하고, [/Z]복사가 중단될때는 중단된 위치에서 부터,

[/MT]CPU다중스레드8를 이용하고, 복사된 로그파일(robocopy_log.txt)을 G:\robocopy_destination 에 저장하자

 

 

 

명령어를 넣고 성능을 확인하니 CPU 그래프도 움직이고 디스크D 와 디스크 G 그래프가 움직이는것을 확인 할수 있습니다.

 

 

몇십분 지나면 명령어를 넣을수 있는 명령어를 입력 할수 있는 명령 프롬프트가 다시 활성화가 됩니다.

 

 

 

한번 확인해볼까요?? 용량이랑 파일 개수

 

용량이 동일하고 폴더 개수도 동일한데 파일이 하나가 더 많네요...???

 

 

 

 

 

네..맞습니다. 옵션중 로그파일을 /LOG:G:\robocopy_destination\robocopy_log.txt  만들어서 넣으라고 했죠??

 

 

로그 파일을 확인 해볼게요...

 

 

이렇게 하나하나 다 남아 있습니다. 어떻 파일이 복사가 되었는지 155,590개의 파일을 기록 했겠죠..

그러니...텍스트파일이 19메가나....

 

로그파일 마지막을 보면 디렉터리, 파일, 바이트, 시간, 속도, 날짜 까지  다 기록이 남아 있습니다.

 

 

그래서 수동복사보단 중요한 파일들이 많을땐 robocopy명령어를 자주 사용합니다.

 

네트워크로 연결되어서 ip가 할당된 PC들끼리도 가능하겠죠...

 

예를들면

공유되는 PC_A(192.168.0.2) 와 PC_B(192.168.0.3) 라고 하면 간단하게
robocopy \\192.168.0.2\test2 \\192.168.0.3\test3 /R /W /E /Z /MT:8 /LOG:\\192.168.0.3\test3\robocopy_log.txt

 

 

 

배치파일을 만들어서 파일서버 백업을 할때도 유용합니다. (스케줄러 등록)

 

 

 

 

 

 

 

 

반응형