본문 바로가기
IT박사

[스크립트 CMD/CLI] 윈도우 폴더 백업(압축) 및 자동 삭제 스크립트

by GDBS 2020. 10. 12.
반응형
728x170

윈도우10에서 네트워크 폴더를 매일 백업하고, 압축한 후 해당 폴더는 바로 삭제하고,

압축 백업 파일은 3일치만 보관하는 스크립트 입니다.

 

스크립트를 배치파일로 만들고, 윈도우 작업 스케쥴러를 통해 실행하는 방식입니다.

명령어에 대해 좀 더 구체적인 사항은 robocopy 명령어를 참고해주세요.

 

 

1. 네트워크 폴더에 있는 파일을 로컬 드라이브로 복사합니다. (실행 로그는 ./logs 폴더 밑에 현재일자를 붙여 기록합니다.)

 

ㅇ 파일명 : 1_SeverCopay.bat

robocopy \\111.112.123.1\shareFloder C:\ServerBackup\%DATE% /S >C:\ServerBackup\logs\1_copy-%DATE%.txt

 

2. 복사된 폴더를 현재일자 파일명으로 압축합니다. (실행 로그는 ./logs 폴더 밑에 현재일자를 붙여 기록합니다.)

 

ㅇ 파일명 : 2_doZip.bat

zip -9vr C:\ServerBackup\%DATE%.zip C:\ServerBackup\%DATE% > C:\ServerBackup\logs\2_zip-%DATE%.txt

 

3. 압축이 완료된 폴더를 삭제합니다. (실행 로그는 ./logs 폴더 밑에 현재일자를 붙여 기록합니다. 삭제 명령의 경우, 성공하면 아무것도 기록되지 않습니다.)

 

ㅇ 파일명 : 3_delFloder.bat

rmdir /s /q C:\ServerBackup\%DATE% > C:\ServerBackup\logs\3_rmdir-%DATE%.txt

 

4. 백업폴더 (SeverBackup) 내에 3일이 지난 압축(.zip) 파일을 찾아 삭제합니다. (실행 로그는 ./logs 폴더 밑에 현재일자를 붙여 기록합니다. 삭제 명령의 경우, 성공하면 아무것도 기록되지 않습니다.)

 

ㅇ 파일명 : 4_delZipFile.bat

forfiles /p "C:\ServerBackup" /s /m *.zip /d -3 /c "cmd /c del @path" > C:\ServerBackup\logs\4_delZipFile-%DATE%.txt

 

 

 

5. 위 스크립트를 순차적으로 실행하는 스크립트를 만들고 작업 스케쥴러에 등록합니다.

 - 혹시 발생할지 모르는 오류를 피하기 위해, 각 스크립트 실행간 10초의 여유를 두고 실행합니다.

 

ㅇ 파일명 : 0_callBatch.bat

call 1_SeverCopy.bat
timeout /t 10
call 2_doZip.bat
timeout /t 10
call 3_delFolder.bat
timeout /t 10
call 4_delZipFile.bat

 

** && 명령을 통해 한번에 실행하는 것도 있다고 하는데, 테스트해보니 앞의 스크립트가 실행 완료하기 전에 뒤에 스크립트들이 실행되는 것인지, 제대로 작동되지 않았습니다. 그래서 저는 번거롭지만, 여러개로 스크립트를 나누어 작성하여 실행하였습니다.

 

 

작업 스케쥴러 등록시 주의점

 

예약작업 등록 화면

 

간혹 작업스케쥴러 실행이 안되는 경우가있는데요,

위와 같이 프로그램/스크립트 입력란에는 배치파일만 남기시고,

하단의 시작 위치 부분에 경로를 지정해주시면 잘 작동됩니다.

 

 

 

혹시 더 좋은 방법을 알고 계신 분께서는 댓글을 통해 공유해주시면 감사하겠습니다. ^^

 

SeverBackup.zip
0.00MB

 

 

 

 

 

728x90
반응형

댓글