출처 : http://blog.love-02.com/13
백업을 받는 컴퓨터는 따로 둔다.
왜냐면 하나를 날려먹어도 하나는 살려둬야 하잖아.
그리고 서버 사용시간대를 피한 아침 6시
기본 발상은 이렇다.
일단 crond 데몬으로 아침 6마다 백업 스크립트를 실행하는데
그 백업 스크립트는 특정 디렉토리를 tar.gz 로 압축하고
그걸 백업 서버의 ftp 로 접속해서 저장한다.
이정도만 되더라도 사용자들의 데이터는 안전하게 유지할수 있는것이다.
그럼 먼저 crond 을 보도록 하자
crond 는 특정 시간이나 날짜(좀 복잡하게도 가능)에 정해진 일을 수행하는 데몬이다.
자세한거는 직접들 찾아보시고
이렇게 명령을 주게되면 crond 에 매일 아침 6시에 /bin/backup.sh 를 실행하라는
것을 의미한다. 자세한 의미는 굳이 설명하지 않겠다.
이러면 crond 는 매일 아침 6정각에 /bin/backup.sh 를 실행한다.
다음은 backup.sh 의 내용이다.
#!/bin/bash
dstring="backup_`date +'%y%m%d'`.tar.gz" # 파일명을 만들어낸다.
# 04년06월21일같은경우에
# backup_040621.tar.gz 를 만든다.
wall < /bin/start_backup_message # 접속되어있는 모든 사용자에게
# 백업이 시작됨을 알리고
/etc/init.d/network stop # 네트워크 서비스를 중지시킨다.
tar cfz $dstring "/home" # home 디렉토리를 파일명으로 압축한다.
/etc/init.d/ network start # 네트워크 서비스 재개
Server="Backup Server Address" # 서버IP
Password="PASSWORD" # backup 받는 유저의 패스워드
UsrID="USERID" # ID
ftp -n $Server <<End-Of-Session # ftp 에 접속 -n 옵션은 자동로그인을 안한다.
user $UsrID $Password # 로그인
binary
put "$dstring"
bye
End-Of-Session
rm -f $dstring # 백업파일 삭제
wall < /bin/end_backup_message # 백업이 끝났음을 알린다
네트워크 서비스를 중지시키는 이유는 간단하다.
백업이 진행될동안 서버에 파일을 올리지 않게 하기 위해서이다.
백업도중에 데이터의 용량이 커져버리면 왠지 모르게 문제가 생길것 같다.
이렇게 해서 테스트 해본결과 backup 서버의 특정 계정에
백업된 데이터가 들어왔다.
다른사람들도 꼭 한번 해보길 바란다... 나처럼 데이터 날려먹고 울지말고..
'::: OS ::: > Linux' 카테고리의 다른 글
리눅스 다운로드 (0) | 2010.10.06 |
---|---|
원격지에서 FTP 백업 (0) | 2010.09.07 |
정규 표현식 (0) | 2010.05.04 |
IBM DeveloperWorks : 리눅스 철통 보안(한글) (0) | 2009.09.10 |
압축 명령어 모음 (0) | 2009.09.08 |