본문 바로가기

원도우

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

반응형

원도우에서 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
반응형