88 lines
2.4 KiB
Batchfile
88 lines
2.4 KiB
Batchfile
|
|
@echo off
|
||
|
|
chcp 65001 > nul
|
||
|
|
setlocal
|
||
|
|
|
||
|
|
echo =====================================
|
||
|
|
echo DB SYNC START (chandj)
|
||
|
|
echo =====================================
|
||
|
|
|
||
|
|
:: ===== 설정 =====
|
||
|
|
set REMOTE_USER=pro
|
||
|
|
set REMOTE_HOST=114.203.209.83
|
||
|
|
set REMOTE_DB_NAME=chandj
|
||
|
|
set REMOTE_DB_USER=pro
|
||
|
|
set REMOTE_DB_PASS=sampass
|
||
|
|
|
||
|
|
set LOCAL_DB_NAME=chandj
|
||
|
|
set LOCAL_DB_USER=root
|
||
|
|
set LOCAL_DB_PASS=root
|
||
|
|
|
||
|
|
set DUMP_FILE=chandj_dump.sql
|
||
|
|
set TIMESTAMP=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
|
||
|
|
set TIMESTAMP=%TIMESTAMP: =0%
|
||
|
|
set BACKUP_FILE=chandj_backup_%TIMESTAMP%.sql
|
||
|
|
:: =================
|
||
|
|
|
||
|
|
:: 기존 덤프 파일 백업 (있는 경우)
|
||
|
|
if exist %DUMP_FILE% (
|
||
|
|
echo [0/3] 기존 덤프 파일 백업 중...
|
||
|
|
copy %DUMP_FILE% %BACKUP_FILE% > nul
|
||
|
|
if errorlevel 1 (
|
||
|
|
echo ⚠️ 백업 실패 (계속 진행)
|
||
|
|
) else (
|
||
|
|
echo ✅ 백업 완료: %BACKUP_FILE%
|
||
|
|
)
|
||
|
|
)
|
||
|
|
|
||
|
|
echo [1/3] 원격 DB 덤프 생성 중...
|
||
|
|
echo 원격 서버(%REMOTE_USER%@%REMOTE_HOST%) SSH 비밀번호를 입력하세요...
|
||
|
|
ssh %REMOTE_USER%@%REMOTE_HOST% "mysqldump --single-transaction --routines --triggers -u %REMOTE_DB_USER% -p%REMOTE_DB_PASS% %REMOTE_DB_NAME%" > %DUMP_FILE%
|
||
|
|
|
||
|
|
if errorlevel 1 (
|
||
|
|
echo ❌ 원격 덤프 실패
|
||
|
|
if exist %BACKUP_FILE% (
|
||
|
|
echo 원본 파일 복구: %BACKUP_FILE% -^> %DUMP_FILE%
|
||
|
|
copy %BACKUP_FILE% %DUMP_FILE% > nul
|
||
|
|
)
|
||
|
|
pause
|
||
|
|
exit /b 1
|
||
|
|
)
|
||
|
|
|
||
|
|
:: 덤프 파일 크기 확인
|
||
|
|
for %%A in (%DUMP_FILE%) do set FILE_SIZE=%%~zA
|
||
|
|
if %FILE_SIZE% LSS 1000 (
|
||
|
|
echo ❌ 덤프 파일이 너무 작습니다 (%FILE_SIZE% bytes). 덤프가 실패했을 수 있습니다.
|
||
|
|
pause
|
||
|
|
exit /b 1
|
||
|
|
)
|
||
|
|
|
||
|
|
echo ✅ 덤프 완료: %DUMP_FILE% (%FILE_SIZE% bytes)
|
||
|
|
|
||
|
|
echo [2/3] 로컬 DB 복원 중...
|
||
|
|
echo 로컬 MySQL 비밀번호를 입력하세요...
|
||
|
|
mysql -u %LOCAL_DB_USER% -p%LOCAL_DB_PASS% %LOCAL_DB_NAME% < %DUMP_FILE%
|
||
|
|
|
||
|
|
if errorlevel 1 (
|
||
|
|
echo ❌ 로컬 DB 복원 실패
|
||
|
|
if exist %BACKUP_FILE% (
|
||
|
|
echo 원본 파일 복구: %BACKUP_FILE% -^> %DUMP_FILE%
|
||
|
|
copy %BACKUP_FILE% %DUMP_FILE% > nul
|
||
|
|
)
|
||
|
|
pause
|
||
|
|
exit /b 1
|
||
|
|
)
|
||
|
|
|
||
|
|
echo [3/3] 정리 중...
|
||
|
|
:: 백업 파일 삭제 (선택사항 - 주석 해제하면 삭제)
|
||
|
|
:: del %BACKUP_FILE% > nul 2>&1
|
||
|
|
|
||
|
|
echo =====================================
|
||
|
|
echo ✅ DB SYNC COMPLETE
|
||
|
|
echo =====================================
|
||
|
|
echo 덤프 파일: %DUMP_FILE%
|
||
|
|
if exist %BACKUP_FILE% (
|
||
|
|
echo 백업 파일: %BACKUP_FILE%
|
||
|
|
)
|
||
|
|
|
||
|
|
pause
|
||
|
|
endlocal
|