본문으로 바로가기

robocopy/사용법/명령어/옵션/백업 방법

category IT/Windows 2019. 3. 13. 14:38

안녕하세요

오늘은 robocopy 사용법 입니다.

robocopy 는 copy, xcpoy 보다 발전된 복사 명령어로

공식 명칭은 "Windows 용 견고한 파일복사"

입니다.

 

데이터 백업, 데이터 복사 작업시

xcopy 나 copy 보다 빠른 속도와 안정성을 자랑하고 있습니다.

 

그럼 먼저 robocopy 옵션 입니다.

 

구분 명령어 설명
복사 옵션 /S  비어 있는 디렉터리는 제외하고 하위 디렉터리를 복사합니다.
/E  비어 있는 디렉터리를 포함하여 하위 디렉터리를 복사합니다.
/LEV:n  원본 디렉터리 트리의 최상위 n개 수준만 복사합니다.
/Z  다시 시작 모드에서 파일을 복사합니다.
/B  백업 모드에서 파일을 복사합니다.
/ZB  다시 시작 모드를 사용합니다.
액세스가 거부된 경우 백업 모드를 사용합니다.
/J  버퍼를 사용하지 않은 I/O로 복사합니다(큰 파일에 권장).
/EFSRAW  EFS RAW 모드에서 암호화된 모든 파일을 복사합니다.
/COPY:copyflag[s] :: 파일에 대해 복사할 내용입니다.
기본값은 /COPY:DAT입니다.
(copyflags : D=데이터, A=특성, T=타임스탬프).
(S=보안=NTFS ACL, O=소유자 정보, U=감사 정보).
(copyflags : D=데이터, A=특성, T=타임스탬프).
/SEC  보안된 파일을 복사합니다. /COPY:DATS와 동일합니다.
/COPYALL  모든 파일 정보를 복사합니다. /COPY:DATSOU와 동일합니다.
/NOCOPY   파일 정보를 복사하지 않습니다. /PURGE와 사용하면 좋습니다.
/SECFIX  건너뛴 파일도 포함하여 모든 파일의 파일 보안을 수정합니다.
/TIMFIX  건너뛴 파일도 포함하여 모든 파일의 파일 시간을 수정합니다.
/PURGE   원본에 없는 대상 파일/디렉터리를 삭제합니다.
/MIR  디렉터리 트리를 미러링합니다.
/E와 /PURGE를 함께 쓰는 것과 동일합니다.
/MOV  파일을 이동합니다. 복사한 다음 원본에서 삭제합니다.
/MOVE  파일 및 디렉터리를 이동합니다. 복사한 다음 원본에서 삭제합니다.
/A+:[RASHCNET]  제공된 특성을 복사된 파일에 추가합니다.
/A-:[RASHCNET]  제공된 특성을 복사된 파일에서 제거합니다.
/CREATE  디렉터리 트리와 길이가 0인 파일만 만듭니다.
/FAT  8.3 FAT 파일 이름만 사용하여 대상 파일을 만듭니다.
/256  256자를 초과하는 매우 긴 경로에 대한 지원을 사용하지 않습니다.
/MON:n  원본을 모니터링합니다. n개 이상의 변경 내용이 표시된 경우 다시 실행합니다.
/MOT:m  원본을 모니터링합니다. 변경 내용이 있으면 m분 후에 다시 실행합니다.
/RH:hhmm-hhmm  실행 시간 - 새 복사본을 시작할 수 있는 시간입니다.
/PF  통과 기준이 아닌 파일당 기준으로 실행 시간을 확인합니다.
/IPG:n  패킷 간 간격(ms), 저속 회선에서 사용 가능한 대역폭을 확보합니다.
/SL  대상에 대한 심볼 링크를 복사합니다.
/MT[:n]  n개의 스레드가 있는 다중 스레드를 복사합니다(기본값 8).
/DCOPY:copyflag[s]  디렉터리에 대해 복사할 내용(기본값은 /DCOPY:DA 수행)
/NODCOPY  디렉터리 정보 복사 안 함(기본적으로 /DCOPY:DA 수행)
/NOOFFLOAD  Windows 복사본 오프로드 메커니즘을 사용하지 않고 파일을 복사합니다.
파일 선택 옵션 /A  보관 특성 집합이 있는 파일만 복사합니다.
/M  보관 특성이 있는 파일만 복사하고 보관 특성을 해제합니다.
/IA:[RASHCNETO]  지정된 특성을 가진 파일만 포함합니다.
/XA:[RASHCNETO]  지정된 특성을 가진 파일을 제외합니다.
/XF file [file]...  지정된 이름/경로/와일드카드와 일치하는 파일을 제외합니다.
/XD dirs [dirs]...  지정된 이름/경로와 일치하는 디렉터리를 제외합니다.
/XC  변경된 파일을 제외합니다.
/XN  새 파일을 제외합니다.
/XO  오래된 파일을 제외합니다.
/XX  추가 파일 및 디렉터리를 제외합니다.
/XL  고립된 파일 및 디렉터리를 제외합니다.
/IS  같은 파일을 포함합니다.
/IT  조정된 파일을 포함합니다.
/MAX:n  최대 파일 크기 - n바이트를 초과하는 파일을 제외합니다.
/MIN:n  최소 파일 크기 - n바이트 미만의 파일을 제외합니다.
/MAXAGE:n  최대 파일 사용 기간 - n일/날짜보다 오래된 파일을 제외합니다.
/MINAGE:n  최소 파일 사용 기간 - n일/날짜보다 최신 파일을 제외합니다.
/MAXLAD:n  최대 마지막 액세스 날짜 - n 이후에 사용되지 않은 파일을 제외합니다.
/MINLAD:n  최소 마지막 액세스 날짜 - n 이후에 사용된 파일을 제외합니다.
/XJ  심볼 링크와 연결 지점을 제외합니다. 일반적으로 기본값으로 포함됩니다.
/FFT  FAT 파일 시간(2초 단위)을 가정합니다.
/DST  1시간의 DST 시간 차이를 보완합니다.
/XJD  디렉터리의 연결 지점과 심볼 링크를 제외합니다.
/XJF  파일의 심볼 링크를 제외합니다.
다시 시도 옵션 /R:n  실패한 복사본에 대한 다시 시도 횟수입니다. 기본값은 1백만입니다.
/W:n  다시 시도 간 대기 시간입니다. 기본값은 30초입니다.
/REG  /R:n 및 /W:n을 레지스트리에 기본 설정으로 저장합니다.
/TBD  정의할 공유 이름을 기다립니다(다시 시도 오류 67).
로깅 옵션 /L  목록 전용 - 파일을 복사 또는 삭제하거나 타임스탬프를 만들지 않습니다.
/X  선택된 파일을 제외하고 모든 추가 파일을 보고합니다.
/V  자세한 정보 표시를 출력하고 건너뛴 파일을 표시합니다.
/TS  출력에 원본 파일 타임스탬프를 포함합니다.
/FP  출력에 파일의 전체 경로 이름을 포함합니다.
/BYTES  바이트 크기로 인쇄합니다.
/NS  크기 없음 - 파일 크기를 기록하지 않습니다.
/NC  클래스 없음 - 파일 클래스를 기록하지 않습니다.
/NFL  파일 목록 없음 - 파일 이름을 기록하지 않습니다.
/N이  디렉터리 목록 없음 - 디렉터리 이름을 기록하지 않습니다.
/NP  진행률 없음 - 복사율(%)을 표시하지 않습니다.
/ETA  복사하는 파일의 예상 도착 시간을 표시합니다.
/LOG:file  상태를 로그 파일에 출력합니다. 기존 로그를 덮어씁니다.
/LOG+:file  상태를 로그 파일에 출력합니다. 기존 로그에 추가합니다.
/UNILOG:file  상태를 유니코드로 로그 파일에 출력합니다. 기존 로그를 덮어씁니다.
/UNILOG+:file  상태를 유니코드로 로그 파일에 출력합니다. 기존 로그에 추가합니다.
/TEE  로그 파일과 콘솔 창에 출력합니다.
/NJH  작업 헤더가 없습니다.
/NJS  작업 요약이 없습니다.
/UNICODE  상태를 유니코드로 출력합니다.
작업 옵션 /JOB:jobname  명명된 작업 파일에서 매개 변수를 가져옵니다.
/SAVE:jobname  명명된 작업 파일에 매개 변수를 저장합니다.
/QUIT  매개 변수를 볼 수 있도록 명령줄을 처리한 후에 끝냅니다.
/NOSD  원본 디렉터리가 지정되어 있지 않습니다.
/NODD  대상 디렉터리가 지정되어 있지 않습니다.
/IF  다음 파일을 포함합니다.

위와 같이 상당히 많은 옵션들이 있습니다.

 

제가 개인적으로 백업 할때 사용하는 명령어입니다.

 

set alltime=%date%
set LOGFILE=C:\Users\Administrator\Desktop\backuplog\%alltime%
set FROM=test1\data\test3\
set TO=\\test\test1\

robocopy %FROM% %TO% /MIR /R:1 /W:2 /XA:S /NP /FP /XD /UNILOG:%LOGFILE%

 

위와 같은 파일을 bat 파일로 만들어서

스케줄작업을 설정하여 백업을 진행하고 있습니다.

 

robocopy 명령어 의 옵션중 MIR 기능으로 인한 데이터 전체 백업이 루어 지지 않고,

변경된 데이터만 백업 하기에

백업 설정 하기에는 xcopy 나 copy 보다

robocopy 명령어가 더욱 효율적입니다.