서버가 어떠한 이유로 다운이 된후 장애시간을 최대한 줄이기 위해 스탠바이 서버를 준비하는 경우가 많은데
rsync라는 편리한 방법이 있는 Linux와 달리 (물론 Windows도 사용이 가능하지만 운용이 까다롭다)
Windows는 xcopy나 SyncToy로 동기화를 할 경우 권한부분이 걸려 따로 ntbackup를 사용하던가 해야 했다.
하지만 Robocopy를 이용하면 속도나 권한문제 등이 대부분 해결이 된다.
먼저 Windows 2003은 따로 Windows Resource Kit Tools을 다운받아 설치해야 한다.(2008이나 7은 기본탑재)
GUI도 존재하지만 여기선 따로 배치파일을 이용해서 스케쥴링을 이용했다.
사용법은 xcopy와 그리 다르지 않다.
robocopy 원본디렉토리 대상디렉토리 옵션
보통 미러링을 이용하려면 아래와 같은 옵션을 사용한다.
/MIR /COPYALL /Z /R:1 /W:2 /LOG:D:\LOG\copy_LOG.txt
아래는 robocopy의 모든 옵션이다.
-------------------------------------------------------------------------------
ROBOCOPY :: Windows용 견고한 파일 복사
-------------------------------------------------------------------------------
사용법 :: ROBOCOPY 원본 대상 [파일 [파일]...] [옵션]
원본 :: 원본 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)
대상 :: 대상 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)
파일 :: 복사할 파일입니다. 이름/와일드카드: 기본값은 "*.*"입니다.
::
:: 복사 옵션:
::
/S :: 비어 있는 디렉터리는 제외하고 하위 디렉터리를 복사합니다.
/E :: 비어 있는 디렉터리를 포함하여 하위 디렉터리를 복사합니다.
/LEV:n :: 원본 디렉터리 트리의 최상위 n개 수준만 복사합니다.
/Z :: 다시 시작 모드에서 파일을 복사합니다.
/B :: 백업 모드에서 파일을 복사합니다.
/ZB :: 다시 시작 모드를 사용합니다. 액세스가 거부된 경우 백업 모드를 사용합니다.
/EFSRAW :: EFS RAW 모드에서 암호화된 모든 파일을 복사합니다.
/COPY:copyflag[s] :: 파일에 대해 복사할 내용입니다. 기본값은 /COPY:DAT입니다.
(copyflags : D=데이터, A=특성, T=타임스탬프).
(S=보안=NTFS ACL, O=소유자 정보, U=감사 정보).
/DCOPY:T :: 디렉터리 타임 스탬프를 복사합니다.
/SEC :: 보안된 파일을 복사합니다. /COPY:DATS와 동일합니다.
/COPYALL :: 모든 파일 정보를 복사합니다. /COPY:DATSOU와 동일합니다.
/NOCOPY :: 파일 정보를 복사하지 않습니다. /PURGE와 사용하면 좋습니다.
/SECFIX :: 건너뛴 파일도 포함하여 모든 파일의 파일 보안을 수정합니다.
/TIMFIX :: 건너뛴 파일도 포함하여 모든 파일의 파일 시간을 수정합니다.
/PURGE :: 원본에 없는 대상 파일/디렉터리를 삭제합니다.
/MIR :: 디렉터리 트리를 미러링합니다./ E plus /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 옵션을 사용하여 출력을 리디렉션하십시오.
::
:: 파일 선택 옵션:
::
/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 :: 다음 파일을 포함합니다.