SSH키를 이용한 RSYNC 서버계정 백업법
컨텐츠 정보
- 8,123 조회
- 0 추천
- 목록
본문
SSH키를 이용한 RSYNC 백업법
============================
A 서버 : 백업대상 서버 (원본서버) A서버계정:suhan
B 서버 : 백업진행 서버 (백업서버) B서버계정:inkaftp
시나리오: B 서버는 A 서버의 특정 계정으로 자동로그인 하여 A 의 내용을 B로 Rsync 한다.
======================================================================================
1> 키생성
B 서버에서 키를 생성해보도록 하겠다.
키는 생성하는 위치가 중요한것이 아니라 개인키를 가진쪽이 공개키를 가진쪽으로 접속한다.
[inkaftp@edutotal ~]$ ssh-keygen -d -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/inkaftp/.ssh/id_rsa):
Created directory '/home/inkaftp/.ssh'.
Enter passphrase (empty for no passphrase): <ENTER>
Enter same passphrase again: <ENTER>
Your identification has been saved in /home/inkaftp/.ssh/id_rsa.
Your public key has been saved in /home/inkaftp/.ssh/id_rsa.pub.
The key fingerprint is:
11:ce:7a:2d:60:0d:09:b3:2a:8b:3f:de:9a:8f:96:20 inkaftp@edutotal.com
RSA 방식으로 키를 만들었으며 , 패스워드는 넣지 않았다.
.pub 파일이 공개키이며 이파일은 접속을 당할 서버 즉 A서버의 접속할 계정에 심어야 된다.
2> 공개키를 전송한다.
#scp /home/inkaftp/.ssh/id_rsa.pub suhan@A서버아이피:~/.ssh/autorized_keys
(키가여러개일때는 뒤에 숫자를 붙인다 keys2...)
.ssh 디렉이 없으면 먼저 만들어두도록 한다
패스워드 묻어볼것이다... 중략...
3> B서버에서 A 서버로 접속테스트 해본다.
# ssh -i /home/inkaftp/.ssh/id_rsa suhan@A서버아이피
RSA key fingerprint is 03:c0:4d:25:a6:5d:0c:41:70:a7:11:0e:f7:12:ee:c8.
Are you sure you want to continue connecting (yes/no)? yes <ENTER>
정상접속이 된다면 성공이다.
4> RSYNC 에 걸어보자
서버가 여러개일 경우 관리를 위해 개인키 id_rsa 파일을 알아보기 쉽게 계정과 서버아이피로 이름을바꾼후에 -i 옵션으로 로딩한다.
# mv /home/inkaftp/.ssh/id_rsa /home/inkaftp/.ssh/suhan_AServer
#rsync -avzrt --delete -e "ssh -i /home/inkaftp/.ssh/suhan_AServer" suhan@A서버아이피:/home/suhan/www /home/inkaftp/backup
#rsync -avzrt --delete --rsh="ssh -i /home/inkaftp/.ssh/suhan_AServer -l suhan" A서버아이피:/home/suhan/www /home/inkaftp/backup
위의 2개 모두 정상 동작할것이다.
5> B서버의 inkaftp Cron 에 등록한다.
[inkaftp#B서버]$ vi /home/inkaftp/rsync_cron_exe.sh
#!/bin/bash
rsync -avzrt --delete -e "ssh -i /home/inkaftp/.ssh/suhan_AServer" suhan@A서버아이피:/home/suhan/www /home/inkaftp/backup
만든 파일에 실행권한을 준다.
[inkaftp#B서버]$ crontab -e
30 4 * * * /home/inkaftp/rsync_cron_exe.sh | mail -s [백업알리미] 내멜주소 <=결과를 메일로 보내준다.
PS. 서버내에 공간이충분하고 파티션이나 드라이버가나눠져 있다면 매일 매일 내부백업을 해두는것도 도움이 될것이다.
vi /etc/cron.daily/rsync_exe.sh
#!/bin/bash
rsync -avzrt --delete /home/mainweb/www /home1
만약 보안상의 이유로 키에 패스워드를 걸경우는 expect 를 사용하면 자동화가 가능하다
수환이의 간단 expect 사용법 참조...
http://blog.naver.com/forioso/10025992292
[출처] 수환이의 SSH키를 이용한 RSYNC 백업법|작성자 사랑굳
관련자료
-
링크