본문 바로가기
IT 전산/유용한 정보

xcopy를 통한 백업 배치파일 Backup batch

by 멍뭉부 2024. 8. 20.
반응형

Batch 파일 내 xcopy를 이용하여 간단하게 백업하는 스크립트입니다.

스케쥴링을 통해서 하면 원하는 날짜별로 주기적으로 백업을 받을 수 있으며, 

배치파일 내 기간 설정을 통해 특정 날짜를 지난 백업파일을 삭제할 수 있습니다.

 

[Batch 파일]

@echo off
set source=C:\bak\13123123
set destination=C:\bak\BackupTest
set date=%date:~-10,4%-%date:~-5,2%-%date:~-2,2%

mkdir %destination%\%date%
xcopy /s /e /y %source% %destination%\%date%

REM 1년(365일) 이상 된 백업 폴더 삭제
forfiles /p %destination% /m * /d -365 /c "cmd /c if @isdir==TRUE rd /s /q @path"

 

1. Source 부분이 백업 받을 대상 경로입니다.

2. destination 부분이 어디에다 백업 받을지 위치를 설정하는 것 입니다. 

    (아래 mkdir 명령어를 통해 해당 경로에 폴더들이 없으면 생성을 진행합니다.)

3. 맨 아랫줄 부분이 오래된 백업파일을 삭제하는 부분이며 /d -365 로 되어있는 것이 해당 일수입니다. 

    365로 되어 있는 것은 365일 지난 폴더를 삭제하겠다라는 것입니다. 원하는 날짜로 변경하셔서 사용하시면 됩니다.

 

[그 외 부가 설명]
명령어 : xcopy /s /e /y %source% %destination%\%date%

  • /s: 하위 디렉터리를 포함하여 복사하되, 비어 있지 않은 디렉터리만 복사합니다.
  • /e: 비어 있는 디렉터리도 포함하여 모든 하위 디렉터리를 복사합니다.
  • /y: 기존 파일을 덮어쓸 때 사용자에게 확인 메시지를 표시하지 않고 자동으로 덮어씁니다.

명령어 : forfiles /p %destination% /m * /d -365 /c "cmd /c if @isdir==TRUE rd /s /q @path"

 

  • forfiles: 지정된 폴더에서 특정 조건에 맞는 파일이나 폴더를 찾습니다.
  • /p: 검색할 경로를 지정합니다.
  • /m: 파일 이름 패턴을 지정합니다(*는 모든 폴더를 의미).
  • /d -365: 365일 이상 지난 폴더를 찾습니다.
  • /c: 찾은 폴더에 대해 실행할 명령을 지정합니다. 이 경우, 오래된 폴더를 삭제합니다(rd /s /q).

 

 

반응형