본문 바로가기

원도우

[원도우] 윈도우용 rsync 및 ssh

반응형

윈도우용 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

 

 

 

 

728x90
반응형