데이터 백업은 아무리 강조해도 지나치지 않는다. 본인은 하드디스크의 신뢰성이 얼마나 좋은 지 잘 모른다.
하지만 하드디스크는 보통 2년 이내에 고장이 나는 것 같다.
그래서 제일 안전한 백업 방법은 데이터를 DVD 같은 read only 매체에 저장 하는 것이라고 생각한다.
하지만 하드디스크 만큼 편리한 저장매체는 없을 것이다.
그래서 이번에 나의 소중한 데이터를 rsync 를 이용하여 백업을 하게 되었다.
rsync 는 안전하게 데이터를 동기화 하는 방법을 제공하는데, 나는 백업할 데이터가 있는 PC 를 나의 Notebook, 백업한 데이터를 저장할 곳을 백업 서버(Ubuntu Linux Server)를 구성하여 데이터를 백업하였다.
백업을 하기위한 절차는 크게 두 단계로 나눌 수 있다.
첫 째, 백업명령을 순차적으로 실행할 shell script 작성
둘 째, 백업을 주기적으로 실행하도록 crond 설정
1. 백업 명령을 실행할 shell script 작성
backup.sh
위의 backup.sh 는 rsync 를 이용하여 archive mode 로 ssh remote shell 을 통하여 백업을 하되, /Users/starblood/project/eclipse/ 디렉토리(source) 아래에 있는 모든 데이터들을 192.168.20.92 Server 의 ~/home/starblood/backup/eclipse/(destination) 디렉토리 아래에 복사를 한다. 이 때 백업할 source 에 없는 디렉토리가 있으면 destination 디렉토리에서도 삭제를 수행하게 된다.
2. 백업을 주기적으로 실행하도록 crond 설정
crontab 명령어를 이용하여 crond 의 설정을 한다. 이때 -e (edit option) 옵션을 준다.
$ crontab -e
여기서 > /dev/null 2>&1 은 standard out 과 standard error 를 모두 /dev/null (블랙홀) 로 보내서 무시하겠다는 의미이다.
여기까지 작업을 해 놓으면, 나의 Notebook 은 평일(월,화,수,목,금) 오전 9시 30분마다 백업을 수행한다.
여기서 ssh login 할때, 패스워드를 물어보지 않고 접속을 허용하게 설정을 해 놓아야 하는데, 이는 아래 사이트에서 자세하게 소개했으니 참고하도록 한다.
ssh 로그인시 패스워드 물어보지 않고 로그인 하기
http://www.linuxhorizon.ro/ssh-wo-passw.html
본인이 백업을 하기위해서 참고한 사이트 정보
http://www.mikerubel.org/computers/rsync_snapshots/
하지만 하드디스크는 보통 2년 이내에 고장이 나는 것 같다.
그래서 제일 안전한 백업 방법은 데이터를 DVD 같은 read only 매체에 저장 하는 것이라고 생각한다.
하지만 하드디스크 만큼 편리한 저장매체는 없을 것이다.
그래서 이번에 나의 소중한 데이터를 rsync 를 이용하여 백업을 하게 되었다.
rsync 는 안전하게 데이터를 동기화 하는 방법을 제공하는데, 나는 백업할 데이터가 있는 PC 를 나의 Notebook, 백업한 데이터를 저장할 곳을 백업 서버(Ubuntu Linux Server)를 구성하여 데이터를 백업하였다.
백업을 하기위한 절차는 크게 두 단계로 나눌 수 있다.
첫 째, 백업명령을 순차적으로 실행할 shell script 작성
둘 째, 백업을 주기적으로 실행하도록 crond 설정
1. 백업 명령을 실행할 shell script 작성
backup.sh
#!/bin/bash # Backup eclipse projects rsync -a -e ssh --delete /Users/starblood/project/eclipse/ starblood@192.168.20.92:/home/starblood/backup/eclipse/ |
위의 backup.sh 는 rsync 를 이용하여 archive mode 로 ssh remote shell 을 통하여 백업을 하되, /Users/starblood/project/eclipse/ 디렉토리(source) 아래에 있는 모든 데이터들을 192.168.20.92 Server 의 ~/home/starblood/backup/eclipse/(destination) 디렉토리 아래에 복사를 한다. 이 때 백업할 source 에 없는 디렉토리가 있으면 destination 디렉토리에서도 삭제를 수행하게 된다.
2. 백업을 주기적으로 실행하도록 crond 설정
crontab 명령어를 이용하여 crond 의 설정을 한다. 이때 -e (edit option) 옵션을 준다.
$ crontab -e
# Run backup script every Mon,Tue,Wed,Thu,Fri, 9:30 AM # m h dom mon dow command 30 9 * * 1,2,3,4,5 /Users/starblood/script/backup.sh > /dev/null 2>&1 |
여기서 > /dev/null 2>&1 은 standard out 과 standard error 를 모두 /dev/null (블랙홀) 로 보내서 무시하겠다는 의미이다.
여기까지 작업을 해 놓으면, 나의 Notebook 은 평일(월,화,수,목,금) 오전 9시 30분마다 백업을 수행한다.
여기서 ssh login 할때, 패스워드를 물어보지 않고 접속을 허용하게 설정을 해 놓아야 하는데, 이는 아래 사이트에서 자세하게 소개했으니 참고하도록 한다.
ssh 로그인시 패스워드 물어보지 않고 로그인 하기
http://www.linuxhorizon.ro/ssh-wo-passw.html
본인이 백업을 하기위해서 참고한 사이트 정보
http://www.mikerubel.org/computers/rsync_snapshots/
'Linux' 카테고리의 다른 글
리눅스 마스터 1급 1차 시험 (0) | 2011.10.31 |
---|---|
Linux port 정보 알아내기 (0) | 2011.10.28 |
ssh 로 ubuntu 서버에 접속하여 auto completion 을 사용할 때, -bash: ??: setlocale: LC_CTYPE: ???? ?? ? ?? (UTF-8) 라는 경고 메시지 대처법 (0) | 2011.10.24 |
Linux partition 설정하기 (0) | 2011.10.24 |
Linux 특정 디렉토리에서 찾고자 하는 모든 파일을 삭제 하는 법 (0) | 2011.08.05 |