원도우

원도우에서 rsync와 SSH로 이용하여 백업을 구성하는 방법

변군이글루 2013. 7. 12. 14:15
반응형

원도우에서 rsync와 SSH로 이용하여 백업을 구성하는 방법

Windows 환경에서 rsync와 SSH를 이용해 리눅스 서버로 백업을 구성하는 방법입니다.

1. 준비 파일 다운로드

Windows용 rsync/ssh 실행 파일을 아래 사이트에서 다운로드합니다.

필요한 파일

  • cygwin1.dll
  • rsync246.exe
  • ssh.exe
  • ssh-keygen.exe

2. 설치 및 기본 구성

2.1 디렉토리 생성

C:\rsync
  • 위 경로에 다운로드한 파일을 모두 저장합니다.

2.2 실행 파일 이름 변경

rsync246.exe → rsync.exe

3. 환경 설정 배치 파일 생성

C:\rsync\env.bat
@echo off
set PATH=C:\rsync;%PATH%
set CYGWIN=binmode tty
set TERM=ansi
set USERNAME=myusername
set HOME=C:\rsync
set RSYNC_RSH=ssh.exe
myusername은 리눅스 서버 계정명으로 변경

4. SSH 접속 테스트

cd C:\rsync
env.bat
ssh 서버IP
  • 비밀번호 입력 후 접속되면 정상
  • 최초 접속 시 known_hosts 등록 메시지 확인 필요

5. rsync 백업 스크립트 작성

C:\rsync\backup.bat
@echo off
call C:\rsync\env.bat

rsync -e ssh -av --delete "/cygdrive/c/Users/username/Documents" user@server:/home/user/backup/
rsync -e ssh -av --delete "/cygdrive/c/rsync" user@server:/home/user/backup/
rsync -e ssh -av --delete "/cygdrive/e/mail" user@server:/home/user/backup/

5.1 경로 설명

Windows 경로 rsync 경로
C:\ /cygdrive/c/
D:\ /cygdrive/d/

5.2 trailing slash 차이

# 폴더 포함 복사
... /My Documents

# 폴더 제외, 내부만 복사
... /My Documents/

5.3 주요 옵션 설명

  • -a : archive 모드 (권한/시간 유지)
  • -v : verbose 출력
  • --delete : 원본에서 삭제된 파일 대상에서도 삭제

6. 서버 사전 준비

서버에서 반드시 디렉토리 생성 필요

mkdir -p /home/user/backup

7. SSH Key 기반 인증 설정 (자동화 필수)

7.1 키 생성

ssh-keygen.exe -P ""
  • 기본 경로 사용 (Enter 입력)
  • 생성 위치
C:\rsync\.ssh\

7.2 서버에 공개키 등록

  • identity.pub 파일을 서버로 복사 후
mkdir -p ~/.ssh
cat identity.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

7.3 테스트

backup.bat
  • 비밀번호 입력 없이 실행되면 성공
728x90

8. 복구 스크립트

C:\rsync\restore.bat
@echo off
call C:\rsync\env.bat

rsync -e ssh -av user@server:/home/user/backup ./restore

9. 자동화 (Windows 작업 스케줄러)

  1. 작업 스케줄러 실행
  2. "작업 만들기"
  3. 트리거 → 원하는 시간 설정
  4. 동작 → backup.bat 실행

10. 다수 사용자 백업 구성 전략

여러 사용자 데이터를 중앙 서버로 백업하려면

 

방법 1. 공용 계정 사용

  • 예: backupuser
  • 각 PC에서 동일한 SSH 키 사용

방법 2. 사용자별 디렉토리 분리

/home/backupuser/user1/
/home/backupuser/user2/

11. 보안 고려 사항 (중요)

SSH Key 사용 시 비밀번호 없이 접속 가능 → PC 보안 필수

권장 설정

  • 서버에서 PermitRootLogin no
  • authorized_keys에 제한 옵션 추가 가능
  • 방화벽으로 접근 IP 제한

12. 개선/대안 (현대적인 방법)

위 방식은 동작은 하지만 구식(Cygwin 기반)입니다.

 

특히 WSL 사용 시

rsync -avz /mnt/c/Users/... user@server:/backup/
  • 리눅스와 동일한 환경으로 관리 기능

13. 운영 팁

  • --dry-run으로 사전 테스트
  • 로그 파일 남기기
rsync -avz /mnt/c/Users/... user@server:/backup/
  • 대용량 데이터는 --partial, --progress 사용

참고URL

- Installing ssh and rsync on a Windows machine: minimalist approach

 

728x90
반응형