2008. 4. 6.

Linux rsync 와 ssh|작성자 뺀쥐리

ssh, rsync를 이용한 백업방법에 대한 웹호스트 연구문서


원격백업을 해결할 열쇠, rsync와 ssh의 결합

(주)웹호스트 구자열과장 danda@nate.com

---

1. 우선, 아래 rsync,ssh에 대한 문서를 읽은 후 본 글을 읽자.

2. 들어가며 정의문서
- 백업대상서버 : 1.1.1.1 ssh포트는 22번
- 백업대상서버(2) : 1.1.1.2 ssh포트는 보안으로 100번사용중
- 백업서버 : 2.2.2.2

우리는 백업서버를 2.2.2.2로 정의하자.
백업대상이 되는 서버는 1.1.1.1로 가정한다.

3. 포트및 접속, 데먼에 대한 이해
- 1.1.1.1은 rsync가 깔리지 않아도 된다.
- 2.2.2.2는 rsync구동프로그램이 반드시 깔려야 한다.
- 1.1.1.1은 873 rsync포트가 열리지 않아도 된다.
- 본 기법은 ssh를 이용한 백업임을 명심하자.
즉, ssh에 대해서만 이해하면 되며, rsync는 백업될때 효율성을 높이는 도구일뿐

4. 1.1.1.1의 백업스크립트작성

#!/usr/bin/expect -f
log_user 0
spawn rsync -avPz --stats -l -t -e ssh 아이디@1.1.1.1:/.backup/ /.backup/start1/
expect "password: "
send "비밀번호\n"
log_user 1
interact

절차숙지
1) expect rpm버전을 설치하라.
2) /usr/bin/expect -f 이파일 <---이렇게 테스트해보라(에러출력됨)
3) expect
> log_user 0
1
....
>exit
이런식으로 expect명령으로 각 줄을 입력 테스트해보라~


5. 1.1.1.2 포트가 다른 경우의 스크립트 핵심

#!/usr/bin/expect -f
log_user 0
spawn rsync -avPz --stats -l -t -e ssh 아이디@1.1.1.2#100:/.backup/ /.backup/www2/
expect "password: "
send "비밀번호\n"
log_user 1
interact

- 포트는 ssh에 따라가므로 #포트로 추가된다.
- 나머지 동일사항

6. crontab의 작성

#remote backup www server 6:00
00 4 * * 5 root /sbin/e2fsck -p /dev/hdb1
01 4 * * 1 root /backupscripts/wwwbk1.sh
01 4 * * 2 root /backupscripts/wwwbk1.sh
01 4 * * 3 root /backupscripts/wwwbk1.sh
01 4 * * 4 root /backupscripts/wwwbk1.sh
01 4 * * 5 root /backupscripts/wwwbk2.sh
01 4 * * 6 root /backupscripts/wwwbk2.sh
01 4 * * 0 root /backupscripts/wwwbk2.sh

위에 작성한 문서를 wwwbk1.sh 와 wwwbk2.sh로 폴더를 다르게한 후,
월-목 : wwwbk1실행하여 /bk/백업1/
금-일 : wwwbk2실행하여 /bk/백업2/
에 놓아서 안정성을 가중시킨다.

댓글 없음: