@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