rsync를 이용해서 증분백업하기.

rsync란

서로 다른 두 컴퓨터에 컴퓨터에 들어 있는 데이터를 서로 동기화 시킬때 사용한다. 동일한 소스가 두군대 존재하고 한쪽을 편집했을때, 다른 한쪽에 편집한 부분을 업데이트 시켜줘야 한다. 이때 rsync는 수정된 부분만 비교해서 백업해 주게 된다.

예를들어 나같은 경우 Data의 대부분을 cloud 서버에 저장한다.(HDD1) 하지만 HDD가 망가지거나, 서버의 데이터가 손상될경우 대비하기 위해서 rsync로 다른 서버(HDD2)에 데이터를 증분백업할때 rsync를 사용하려고 한다.

rsync 설치확인.

rsync 는 보통 rsync [OPTION]… SRC [SRC]… [USER@]HOST:DEST 이러한 형태로 사용하게 되는데

-a, --archive   archive mode
-v, --verbose increase verbosity
-z, --compress compress file data
-u, --update update only (don't overwrite newer files

ex)클라우드 서버의 data 폴더를 이동한다고하면
rsync data user-id@192.168.x.x:/home/user-id 이런식으로 사용할 수 있다.

data에 /를 붙이면 해당 폴더가 생성되고 / 를 붙이지않으면 안에 내용물 부터 복사된다.

특정 파일/폴더를 제외하려면 --exclude="파일"을 사용하면 된다.
 rsync -avz --delete --exclude=".svn" root@192.168.1.1:/var/www/html

여기서 좀더 나아가서 자동화 하는방법을 알아보자.(rsync를 쓰면 password를 입력해줘야되는데 나는 cron으로 자동으로 동기화 시키려고 한다.

먼저 옮길 서버에서 ssh key를 추출해준다.
ssh-keygen -t rsa -b 4096

rsa 4096 으로 암호화 한다.

key를 만들었으면 이걸 목적지 서버에 전달해주면된다.
ssh-copy-id admin-sv@192.168.1.113

그리고나서 목적지 서버로 ssh를 사용해서 접근해보면 패스워드 입력을 안해도 자동으로 접속이 된다.
ssh user-id@192.168.x.x

자동화는 이제 간단해졌다 move.sh 스크립트를 만들고 안에 rsync 명령어를 넣어준다.

이걸 실행시켰을때 원래는 pw를 입력시켜줘야했지만 이제는 필요없다.

sh move.sh 를 실행시키면 pw 입력없이 rsync가 동작하게된다.

cron 을 통한 자동 동기화는 vi /etc/crontab

위와같은 내용을 추가시켜주면 된다.

 

————————————————–

사이트 리뉴얼중입니다~

서버(Linux, ESXi), NAS(헤놀로지, ESXi 및 IT관련 정보, 기타 등등을 공유하는 커뮤니티 SVRFORUM을 새로 만들었습니다.
많은 가입(?) 부탁드립니다~
https://svrforum.com

이전글들은 모두 상단 메뉴의 Blog 글 모음에있습니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

홈서버 IT 커뮤니티 SVRFORUM
Link