[윈도우즈] rsync 원격 백업 스크립트

@ECHO OFF
REM ------------------------------------------------------------------
REM
REM 공유폴더 rsync 백업 스크립트
REM
REM 디렉토리 구조
REM share_backup┬share: 동기화 디렉토리
REM             │
REM             └logs: 로그 디렉토리
REM share_backup.bat
REM
REM ------------------------------------------------------------------

REM ########################################################
REM # UTF-8로 코드페이지 변경
REM ########################################################
CHCP 65001
CLS
REM ########################################################
REM # 시작 디렉토리로 이동
REM ########################################################
CD /D E:\

REM ------------------------------------------------------------------
REM  기본 설정
REM  ------------------------------------------------------------------
SET CURRENT_TIME=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
SET "BASE_DIR_NAME=share_backup"
SET "BACKUP_NAME=share"
SET "RSYNC_CMD=C:\PortableApps\cmd_cygwin_x86_64\bin\rsync.exe"
SET "SCHTASKS_NAME=공유폴더백업"
SET "RSYNC_PASSWORD=rsync비밀번호"
SET PASSWORD_FILE=secure_code.txt
SET PORT=1873
REM SET PORT=873 // rsync 기본 포트

REM ------------------------------------------------------------------
REM  rsync 옵션
REM  ------------------------------------------------------------------
SET "LOG_FILE_CYGWIN=%BASE_DIR_NAME%/logs/%CURRENT_TIME%.log"
SET "SRC_RSYNC=share@10.10.10.2::share"
SET "DST_DIR_CYGWIN=%BASE_DIR_NAME%/%BACKUP_NAME%"

ECHO ------------------------------------------------------------------
ECHO 디렉토리 생성
ECHO ------------------------------------------------------------------
IF NOT EXIST %BASE_DIR_NAME% MKDIR %BASE_DIR_NAME%
IF NOT EXIST %BASE_DIR_NAME%\logs MKDIR %BASE_DIR_NAME%\logs
IF NOT EXIST %BASE_DIR_NAME%\%BACKUP_NAME% MKDIR %BASE_DIR_NAME%\%BACKUP_NAME%
ECHO.%RSYNC_PASSWORD%>%BASE_DIR_NAME%\%PASSWORD_FILE%

ECHO ------------------------------------------------------------------
ECHO rsync 백업 실행
ECHO ------------------------------------------------------------------
ECHO %RSYNC_CMD% -avrz --delete --force --port=%PORT% --password-file="%BASE_DIR_NAME%/%PASSWORD_FILE%" --log-file=%LOG_FILE_CYGWIN% %SRC_RSYNC% %DST_DIR_CYGWIN%
%RSYNC_CMD% -avrz --delete --force --port=%PORT% --password-file="%BASE_DIR_NAME%/%PASSWORD_FILE%" --log-file=%LOG_FILE_CYGWIN% %SRC_RSYNC% %DST_DIR_CYGWIN%
DEL /F /Q "%BASE_DIR_NAME%\%PASSWORD_FILE%"

ECHO ------------------------------------------------------------------
ECHO 윈도우 스케쥴러 등록
ECHO ------------------------------------------------------------------
ECHO SCHTASKS /DELETE /F /TN "%SCHTASKS_NAME%"
SCHTASKS /DELETE /F /TN "%SCHTASKS_NAME%"
ECHO SCHTASKS /CREATE /F /SC WEEKLY /D WED /ST 01:30 /TN "%SCHTASKS_NAME%" /TR %0
SCHTASKS /CREATE /F /SC WEEKLY /D WED /ST 01:30 /TN "%SCHTASKS_NAME%" /TR %0
위로 스크롤