최근 나야나(nayana) 서버 해킹 사건으로 인해 서버 백업의 중요성 매우 커졌습니다.
실제로 백업은 매우매우 중요합니다.
이 글은 기존에 제가 작성한 https://blog.lael.be/post/1449 글에 이어서 작성하는 글입니다.
즉 이 글의 내용을 구현하려면 먼저 위의 글로 이동하여 로컬 백업을 구현해 두어야 합니다.
1. 믿을 수 있는 원격 저장소 찾기
이 글에서는 백업/동기화 부문에서 전세계 1위 업체인 Dropbox 를 원격 저장소로 사용할 것입니다.

https://www.dropbox.com 로 이동하여 무료 회원가입을 실시합니다.
무료 회원은 2GB 의 저장공간을 받습니다. 기타 다양한 기능을 사용할 수 있습니다.
추가 저장공간을 원한다면 1TB 저장공간 1년 사용 할 수 있는 Plus 가입을 해보세요! (권장)

2. Linux 서버에 Dropbox Uploader 설치
Dropbox Uploader 는 https://github.com/andreafabrizi/Dropbox-Uploader 에서 다운 받을 수 있습니다.
CURL을 사용한 단순한 쉘 스크립트이며 따라서 서버에 추가적으로 설치할 프로그램은 없습니다.
본문은 Linux root 계정으로 진행합니다. (웹호스팅 일반 사용자도 사용 가능합니다. 이 경우 경로를 잘 설정하세요.)
홈 디렉토리로 이동
# cd ~
Dropbox Uploader 폴더 생성
# mkdir uploader
# cd uploader
최신 소스 다운로드
# wget https://github.com/andreafabrizi/Dropbox-Uploader/archive/master.zip
# unzip master.zip
혹시나 서버에 unzip 프로그램이 설치되어 있지 않다면 다음 명령어로 unzip 설치
# apt-get install unzip
업로드 프로그램 실행
# cd Dropbox-Uploader-master/
# ./dropbox_uploader.sh

업로드 키를 등록해주어야 합니다.
영어 문구에 나타난 대로 진행하면 됩니다.
1) https://www.dropbox.com/developers/apps 이동
2) Create App

3) Dropbox API app

4) 앱 이름은 중복되지 않게 작성
위의 예제에서는 ajsdfiasodf-myblog-server 를 사용하였습니다.
Create App 후에
5) 앱 접근키 생성
자신만 사용할 것이기 때문에 개발 상태는 Development 로 그대로 둡니다.
Generate access token 을 사용하여 앱에대한 접근키를 얻습니다.
6) 서버에 Access Token 입력
Access token 은 본인만 알고 있어야 하며 관리를 잘해야합니다. 이 키가 있는 사람은 해당 앱폴더에 접근할 수 있게 됩니다.

입력 정보는 /root/.dropbox_uploader 에 저장됩니다.
7) 원격 백업 테스트
# /root/uploader/Dropbox-Uploader-master/dropbox_uploader.sh upload CHANGELOG.md /

8) 웹사이트에서 해당 폴더로 이동하여 백업이 정상적으로 되었는지 확인

9) 실제 사용 예제
대부분의 경우 압축백업을 진행하는 것이 좋습니다.
> 압축백업 : 작은 크기의 파일이 많을 경우 진행하세요. 웹사이트 백업. 사진 백업. 등
서버 로컬의 /backup 폴더에 압축 백업을 진행함. 백업 후 dropbox 에 업로드함. 10일이 지난 파일은 삭제함.
[code language="bash" title="backup.sh"]
#!/bin/bash
CURRENT=$(date +%Y%m%d%H%M%S)
tar -czpf /backup/jingjing.${CURRENT}.tgz /home/jingjing 1>/dev/null 2>/dev/null
mysqldump --extended-insert=FALSE -hlocalhost -uroot -ptest1234 mydbname > /backup/mydbname.${CURRENT}.sql
/root/uploader/Dropbox-Uploader-master/dropbox_uploader.sh upload /backup/jingjing.${CURRENT}.tgz /
/root/uploader/Dropbox-Uploader-master/dropbox_uploader.sh upload /backup/mydbname.${CURRENT}.sql /
find /backup/ -type f -mtime +10 | sort | xargs rm -f
[/code]
> 즉시백업 : 대용량이며 파일 갯수가 적을 경우 이렇게 하세요. 동영상 폴더 백업. 등
서버 로컬 파일을 즉시 dropbox 에 업로드합니다. 압축백업(위의 방식)보다 트래픽이 더 발생하고, 파일 1개를 전송하는 압축백업과 다르게 모든 파일에 대해서 upload 명령을 실행해야 하므로 시간이 훨씬 더 오래 걸립니다.
[code language="bash" title="backup.sh"]
#!/bin/bash
CURRENT=$(date +%Y%m%d%H%M%S)
/root/uploader/Dropbox-Uploader-master/dropbox_uploader.sh upload /home/myuser1/www /myuser1/${CURRENT}
[/code]
10) 확인

< 그림 : 매일 오전 3:30 에 Dropbox 원격 백업이 실행되고 있다 >
Dropbox 에 저장된 파일은 모든 변동 내역이 기록되며 요금제에 따라서 최소 30일에서 최대 1년간의 시점 복원이 가능합니다.
즉 의도치 않은 파일 삭제에 대해서 안전해 집니다.
안전한 원격 백업 완성!
Conversation
In the margins
0 notes
No comments yet. Be the first to leave a note.