강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

rsync윈도우에서 리눅스로 백업하기
작성자 : 13 김영철
등록날짜 : 2009.01.29 16:31
3,952
rsync라는 툴에 대해서 들어보셨을 겁니다. 데이타의 미러링을 위해서 주로 쓰이고 있지요.

이걸 개인 PC에 쓰도록 하는 것이 오늘의 팁입니다.

필요한 설치 환경은 다음과 같습니다.

1. 서버(유닉스 호환이면 되겠죠: 이 서버에 데이타를 백업받습니다.)
   서버에는 rsync및 ssh가 설치되어 있어야 합니다.
   서버에 설치 부분은 언급하지 않겠습니다. 좋은 문서가 많으니까요.

2. 개인PC(윈도우머신)
   윈도우용 rsync 및 ssh

----------------------------------------------------------------------
윈도우용 rsync 및 ssh는 아래 사이트에 가보시면 다운 받을 수 있습니다.

http://optics.ph.unimelb.edu.au/help/rsync/binaries/
여러가지 파일이 있지만 필요한 파일은
cygwin1.dll
rsync246.exe
ssh.exe
ssh-keygen.exe

1. 위 파일을 다운 받아서 c:\\rsync 폴더에 저장합니다.
2. rsync246.exe 는 rsync.exe로 파일이름을 변경합니다.
(rsync.exe 버전이 여러개 있지만 2.46버전이 제일 안정적이었습니다.)
3. c:\\rsync 폴더에 다음과 같이 test.bat라는 파일을 만들어줍니다.
위의 사이트에서 rsetup.bat라는 파일을 받아서 수정하셔도 됩니다.

@echo off
set PATH=c:\\rsync;%PATH%
set CYGWIN=binmode tty
set TERM=ansi
set USERNAME=myusername <--- myusername을 서버의 자신의 계정이름으로 바꿉니다.
set HOME=c:\\rsync
set RSYNC_RSH=ssh.exe

4. 피시의 도스창에서 아래와 같은 작업을 해서 테스트 해봅니다.
4-1 c:\\rsync폴더에서 test.bat을 실행합니다.
4-2 마찬가지로 ssh.exe 서버아이피(혹은 URL)를 실행합니다

응답이 패스워드를 요구하고 패스워드 입력시 서버로 ssh접속이 되는지 확인해봅니다.

5. 위의 작업이 성공적이라면 이제 거의 다 하신 겁니다.
이제 rsync를 이용하는 배치 파일을 만들어 보겠습니다.
@echo off
set PATH=c:\\rsync;%PATH%
set CYGWIN=binmode tty
set TERM=ansi
set USERNAME=myusername <--- myusername을 서버의 자신의 계정이름으로 바꿉니다.
set HOME=c:\\rsync
set RSYNC_RSH=ssh.exe
rsync -e ssh -av --delete \"/cygdrive/c/Documents and Settings/lum34/My Documents\" 서버아이피(URL):/home/lum34/backup/
rsync -e ssh -av --delete \"/cygdrive/c/rsync\" 서버아이피(URL):/home/lum34/backup/
rsync -e ssh -av --delete \"/cygdrive/e/mail\" 서버아이피(URL)/home/centerbackup/lum34/backup/

이 파일을 mirror.bat라고 저장하세요.
여기서 /cygdrive/c/는 C:\\ 드라이브입니다. D:\\드라이브는 /cygdrive/d/ 가 되겠죠.
위의 배치 파일은 제PC의 My Documents파일과 메일등을 서버의 lum34/backup 디렉토리로 복사하라는 명령입니다.
백업받으실 폴더명으로 바꿔주시면 됩니다.
옵션중에 --delete는 제 PC에서 사라진 데이타는 서버에서도 지우라는 것입니다.
옵션은 rsync에 대한 문서를 찾아보세요.

중요: 서버의 lum34 디렉토리 밑에 backup이라는 디렉토리는 직접 만들어 줘야 합니다. 이것을 만들어 주지 않으면 에러가 납니다. 단 그 하위 폴더는 자동으로 만들어 줍니다.

참고로
rsync -e ssh -av --delete \"/cygdrive/c/Documents and Settings/lum34/My Documents\" 서버아이피(URL):/home/lum34/backup/
rsync -e ssh -av --delete \"/cygdrive/c/Documents and Settings/lum34/My Documents/\" 서버아이피(URL):/home/lum34/backup/
의 차이는 위의 것이 My Documents라는 폴더를 만들고 그 하위의 폴더내용도 백업한다면
아래것은 My Documents 라는 폴더 밑의 것만 백업합니다. My Documents라는 폴더는 만들지 않습니다.

6. mirror.bat 파일을 실행합니다.
계정 암호를 물어볼겁니다. 암호를 넣으시면 백업할 파일 목록을 만들고 백업하는 과정을 보실 수 있을 겁니다.

7. 그런데 백업할 때마다 계정암호를 물어본다면 좀 귀찮죠.
보안상 안좋지만 이렇게 하면 됩니다.
7-1 ssh-keygen.exe -P \"\"
이렇게 실행해줍니다. 물론 도스창에서 입니다. 그리고 test.bat이나 mirror.bat을 먼저 실행한 후에 해야 합니다.
이렇게 하면
Enter file in which to save the key (/cygdrive/c/rsync/.ssh/identity):
이라고 물어볼겁니다.
그냥 Enter 치시면 됩니다.
7-2 이제 c:\\rsync./ssh 라는 디렉토리에 보면 identity.pub 라는 파일이 생겼을 겁니다.
이걸 서버의 자신의 계정 밑의 .ssh 디렉토리에도 authorized_keys 파일이름으로 복사합니다.

7-3 다시 한번 mirror.bat을 실행시켰을 때 암호 물어보지않고 백업한다면 성공입니다.
7-4 이렇게 했을 때 문제는 도스창에서 test.bat과 같은 환경 파일을 실행하고 ssh.exe 서버아이피 하면 ssh로 바로 접속된다는 것입니다.
이제 자기 PC에 대한 보안도 잘 지켜야 겠죠.

8. 복원하는 배치파일은 다음과 같습니다. 이 배치 파일은 자신의 컴의 c:\\rsync\\restore라는 폴더로 서버에 백업되어 있는 파일을 불러
오는 것입니다.
@echo off
set PATH=c:\\rsync;%PATH%
set CYGWIN=binmode tty
set TERM=ansi
set USERNAME=myusername <--- myusername을 서버의 자신의 계정이름으로 바꿉니다.
set HOME=c:\\rsync
set RSYNC_RSH=ssh.exe
rsync -e ssh -av 서버아이피(URL):/home/lum34/backup ./restore

9. 이제 자동으로 백업을 받게 해야겠죠.
이것은 윈도우의 예약된 작업을 이용해서 하면 됩니다. 예약작업추가해서 적당한 시간을 설정하면 되겠죠.

10. 이제 자기 PC뿐만 아니라 사무실의 다른 사람들 데이타도 백업받도록 해주면 좋겠죠. 사무실에 있는 모든 사람이 계정을 가지고 있지 않을 뿐더로 모두다 서버에 접속할 수 있는 권한을 준다는 것도 좋지 않을테니까요.

특히 예쁜 아가씨라면.... 하드가 날라갔을 때 데이타를 복구해준다면 만만치 않은 이익이 오리라 믿습니다. 흑. 저 장가갔습니다.

10-1. 서버에 cbacupk 등의 공통된 계정을 만듭니다. 이 계정은 권한을 최소한만 주도록 해주는 것이 좋을겁니다.
mirror.bat 파일과 resotre.bat 파일에서 계정이름을 수정합니다.
그리고 백업받을 위치도 수정합니다. 개인당 하나의 디렉토리를 지정해주면 되겠죠.
그리고 c:\\rsync\\.ssh의 파일을 새로 만드는 것이 아니라 cbacup으로 설정해서 만든 처음의 컴퓨터에서 .ssh 폴더의 파일을  복사해서주면 됩니다.
-----------------------------------------------------------------------------------
긴 팁 읽어주셔서 감사합니다.

제가 올리는 팁에 대한 더 자세한 사항은 아래 사이트를 참조하세요.
http://optics.ph.unimelb.edu.au/help/rsync/rsync_pc1.html

-phpschool 

 

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2895 ftp로 원격서버의 데이터 자동백업 13 김영철 01.29 2593
2894 계정 자동 세팅 13 김영철 01.29 2715
2893 응급복구 13 김영철 01.29 2571
2892 특정 계정에대해서 telnet 접속 X , ftp 접속 O 13 김영철 01.29 2817
2891 rootman의 서버 초기세팅시 초기 설정사항 퍼미션 및 소유권변경 정보 13 김영철 01.29 2396
2890 네임서버 설정 13 김영철 01.29 2462
2889 트래픽을 증가시키는 외부사이트의 이미지 퍼가기를 막기 위한 apache config 설정 13 김영철 01.29 2705
2888 리눅스 도메인 셋팅방법 13 김영철 01.29 2374
2887 리눅스 서브도메인 셋팅방법 13 김영철 01.29 2820
2886 아파치 - throttle 모듈 설치 13 김영철 01.29 2735
2885 APM - 단독서버 운영을 위한 셋팅 13 김영철 01.29 2945
2884 vi edit 사용 13 김영철 01.29 2819
2883 TOMCAT 13 김영철 01.29 2415
2882 vi 명령어 2 13 김영철 01.29 3237
2881 ncftp, ncftpget, ncftpput - 서브디렉토리 전송 13 김영철 01.29 3685
2880 ncftp, ncftpget, ncftpput - 서브디렉토리 전송 13 김영철 01.29 2588
2879 [서버운영] ncftp 100% 활용하기 13 김영철 01.29 2621
2878 rsync (remote sync daemon) UNIX 서버간 원격 복사 13 김영철 01.29 3106
2877 rsync 와 ssh 를 이용한 파일 전송 13 김영철 01.29 3435
열람중 rsync윈도우에서 리눅스로 백업하기 13 김영철 01.29 3953
2875 RSYNC 사용하기 13 김영철 01.29 2449
2874 ssh 재시작(각종 변곃후) 13 김영철 01.29 2974
2873 ssh 보안설정1 13 김영철 01.29 2654
2872 find 명령어 사용법 13 김영철 01.29 2496
2871 chgrp 명령어 사용법 13 김영철 01.29 4424
2870 killall 명령어 사용법 13 김영철 01.29 3479
2869 kill 명령어 사용법 13 김영철 01.29 2802
2868 ps 명령어 사용법 13 김영철 01.29 3780
2867 루트밑에 특정 확장자 파일을 특정디렉토리에 복사 13 김영철 01.29 2917
2866 쉘스크립트 암호화 13 김영철 01.29 2720
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취