윈도우, 도스 기본 명령어인 ROBOCOPY를 활용하면 기본적인 파일 복사 이동 외에도 백업, 복구에도 활용을 할 수가 있습니다. 배치스크립트 파일을 만들어 작업 스케쥴러에 등록을 해놓으면 일정 시간마다 주기적으로 백업을 할 수도 있습니다. 두번째 부터 수행되는 백업은 바로 전 백업했던 내용과 비교하여 변경되거나 새로 추가 된 파일들만 백업하게 되므로 시간도 많이 절약이 됩니다. 하지만 작은 실수로도 데이터를 날리는 경우도 종종 있으니(저만 그런가요? ㅠㅠ) 주의를 해야 합니다. 원본과 대상을 헷갈려서 반대로 적는다면 아찔한 상황이 올 수도 있고 실수로 옵션을 잘못 써서 예상못한 일이 일어나기도 합니다. 소중한 데이터는 그대로 저 세상으로.. ㅠㅠ (그래픽 UI가 아니라서 아무래도 직관적이지 않으니 실수를 많이 하게 되는것 같습니다)
가장 간단한 사용 예는 robocopy /mir D: U: #이것은 D드라이브를 U드라이브로 미러링(백업)하는 명령어입니다. 미러링이기 때문에 D에 있는 파일을 U로 복사하는것은 당연하고 D에는 없는데 U에 있는 파일은 삭제도 해버리게 됩니다. 이런것을 가장 주의해야 합니다. 단순 복사와는 개념이 달라서 처음 접할때는 살짝 당황스러운 부분이기도 합니다.
단순 복사를 위해서는 robocopy /s /e D: U: #이것을 자주 쓰는데 robocopy는 디스크의 시스템 파일이나 숨김파일마저 모두 복사를 하기 때문에 가끔 복사할 수 없는 파일(시스템 파일 등)도 복사를 하려고 무진장 애를 씁니다. 그 파일이 복사될때까지 '네가 이기나 내가 이기자 해보자'라는 식으로 물고 늘어진답니다. 그래서 수백 수천개의 파일을 복사를 걸어놓고 몇 시간을 나가서 놀다가 들어왔는데 들어와보니 하필이면 초반 7번째에 복사가 되지 않는 시스템 파일 같은게 걸려버려서 몇시간 동안을 그 파일만 붙잡고 있는 경우도 있습니다. (바보 같은 컴퓨터 ㅠㅠ) 그래서 복사가 안되는 파일은 무식하게 몇번이나 복사를 계속 시도하기 보다는 그냥 다음 파일로 넘어가게끔 해주어야 할때도 있습니다.
c:\>robocopy /s /e /r:3 D: U:
#이것은 D드라이브를 U드라이브로 복사를 하는데, 복사가 안되는 파일은 3번만 다시 시도해보라는 뜻입니다. 이렇게 지정해주지 않으면 기본값은 1백만 번입니다. 바보 멍청이 컴퓨터는 백만번이나 다시 시도를 하려고 합니다. 그리고 다시 시도 할때마다 30초씩 기다렸다가 시도를 합니다. 즉 30초 X 1백만 초 동안 파일 하나만 붙잡고 늘어지는 셈입니다. 그러니까 에러난 파일이나 접근 거부된 파일을 만나게 되는 경우는 8333시간동안 뻘짓을 하게 됩니다. 8333시간이라니... 거의 1년동안입니다. ㅋㅋㅋ
c:\>robocopy /s /e /r:3 /w:10 D: U:
#이것은 3번만 다시 시도하는데 다시 시도하기 전에 10초 정도 기다리라는겁니다. 가끔 네트워크 상에 복사중일때 회선이 잠시 오류가 나서 그럴 수도 있고 외장 하드의 경우에도 뭐 여러가지 이유로 수 초 뒤에 다시 시도하면 되는 경우가 있습니다. 그래서 원래 기본 값은 30초이지만 30초는 너무 길다 싶으면 10초 정도로 정해줄 수가 있습니다. 개인적으로 이 옵션을 가장 추천합니다.
아래는 robocopy 의 모든 옵션을 나열합니다. 커맨드 창에서 robocopy /? 명령어로 언제든지 볼 수 있습니다.
c:\>robocopy /? ------------------------------------------------------------------------------- ROBOCOPY :: Windows용 견고한 파일 복사 ------------------------------------------------------------------------------- 시작됨: 2019년 2월 5일 화요일 오후 11:28:01 사용법 :: 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=감사 정보).
/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). n은 1 이상 128 이하여야 합니다. 이 옵션은 /IPG 및 /EFSRAW 옵션과 호환되지 않습니다. 성능을 향상시키려면 /LOG 옵션을 사용하여 출력을 리디렉션하세요. /DCOPY:copyflag[s] :: 디렉터리에 대해 복사할 내용(기본값은 /DCOPY:DA). (copyflags : D=데이터, A=특성, T=타임스탬프). /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 이후에 사용된 파일을 제외합니다. n이 1900보다 크면 n은 n일과 같고 그렇지 않으면 n은 YYYYMMDD 날짜입니다. /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 :: 파일 목록 없음 - 파일 이름을 기록하지 않습니다. /NDL :: 디렉터리 목록 없음 - 디렉터리 이름을 기록하지 않습니다. /NP :: 진행률 없음 - 복사율(%)을 표시하지 않습니다. /ETA :: 복사하는 파일의 예상 도착 시간을 표시합니다. /LOG:file :: 상태를 로그 파일에 출력합니다. 기존 로그를 덮어씁니다. /LOG+:file :: 상태를 로그 파일에 출력합니다. 기존 로그에 추가합니다. /UNILOG:file :: 상태를 유니코드로 로그 파일에 출력합니다. 기존 로그를 덮어씁니다. /UNILOG+:file :: 상태를 유니코드로 로그 파일에 출력합니다. 기존 로그에 추가합니다. /TEE :: 로그 파일과 콘솔 창에 출력합니다. /NJH :: 작업 헤더가 없습니다. /NJS :: 작업 요약이 없습니다. /UNICODE :: 상태를 유니코드로 출력합니다. :: :: 작업 옵션: :: /JOB:jobname :: 명명된 작업 파일에서 매개 변수를 가져옵니다. /SAVE:jobname :: 명명된 작업 파일에 매개 변수를 저장합니다. /QUIT :: 매개 변수를 볼 수 있도록 명령줄을 처리한 후에 끝냅니다. /NOSD :: 원본 디렉터리가 지정되어 있지 않습니다. /NODD :: 대상 디렉터리가 지정되어 있지 않습니다. /IF :: 다음 파일을 포함합니다. :: :: 설명: :: 이전에 볼륨의 루트 디렉토리에서 /PURGE 또는 /MIR 사용하면 요청된 작업이 robocopy에 의해 시스템 볼륨 정보 디렉터리 내부의 파일에도 적용되었습니다. 이제는 더 이상 적용되지 않습니다. 둘 중 하나가 지정되면 robocopy는 복사본 세션의 최상위 원본 및 대상 디렉토리에서 해당 이름을 가진 파일 또는 디렉토리를 건너 뜁니다. c:\> |
0 comments:
댓글 쓰기