XETOWN

분수 광장

특정한 주제 없이 자유로운 이야기를 나눌 수 있습니다.
조회 수 144 추천 수 1 댓글 8
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 댓글로 가기
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기

번거롭지 않는 안전한 백업 방법을 소개합니다!

 

최근에 서버 백업 문제가 이야기 되길래 작성해 보았습니다.

방금 작성했으며 당연히 출처는 : https://blog.lael.be/post/5952 제 블로그 입니다.

 

모든 파일 변경내역이 기록되는 dropbox 에 백업을 실시합니다.

무료 계정은 2GB 용량이며, 퀘스트(?)를 통해 20GB 까지 무료증설 가능합니다.

유료 계정은 1TB 용량을 저장할 수 있습니다.

 

1. 믿을 수 있는 원격 저장소 찾기

이 글에서는 백업/동기화 부문에서 전세계 1위 업체 Dropbox 를 원격 저장소로 사용할 것입니다.

 

https://www.dropbox.com 로 이동하여 무료 회원가입을 실시합니다.

무료 회원은 2GB 의 저장공간을 받습니다. 기타 다양한 기능을 사용할 수 있습니다.

 

추가 저장공간을 원한다면 1TB 저장공간 1년 사용 할 수 있는 Plus 가입을 해보세요! (권장)

 

2. Linux 서버에 Dropbox Uploader  설치

Dropbox Uploader 는 https://github.com/andreafabrizi/Dropbox-Uploader 에서 다운 받을 수 있습니다.

CURL을 사용한 단순한 쉘 스크립트이며 따라서 서버에 추가적으로 설치할 프로그램은 없습니다.

 

홈 디렉토리로 이동

# 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.sh
1
2
3
4
5
6
7
#!/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 / 1>/dev/null 2>/dev/null
/root/uploader/Dropbox-Uploader-master/dropbox_uploader.sh upload /backup/mydbname.${CURRENT}.sql / 1>/dev/null 2>/dev/null
find /backup/ -type f -mtime +10 | sort | xargs rm -f

 

Dropbox 에 저장된 파일은 모든 기록 변경이 기록되며, 최소 30일에서 1년간의 시점 복원이 가능합니다.

즉 의도치 않은 파일 삭제에 대해서 안전해 집니다.

 

안전한 원격 백업 완성!

  • profile
    기진곰 2017.07.16 01:27:11

    퀘스트라는 건 다른 사람에게 이런 링크(ㅋㅋ)를 알려주어 Dropbox에 가입하게 하면 소개해 준 사람과 소개받은 사람 모두 무료로 500MB의 용량을 더 받는 걸 말씀하시는 거죠? 예전에는 250MB였는데 어느새 두 배로 늘었네요 ㅎㅎ

  • profile
    라엘 2017.07.16 02:17:06

    전 Plus Plan 사용중 이라서 한명당 1기가 준답니다 ㅎㅎ

  • profile
    기진곰 2017.07.16 10:38:15
    와~ 요즘은 유료플랜에서도 퀘스트가 가능하군요!
  • profile
    가이더 2017.07.16 08:57:36
    구글 g 스위트는 5개 계정 비용 월 50달러면 용량이 무제한인데요. 혹시 여기에 백업도 가능할까요? 지스위트하고 구글드라이브는 다릅니다..
  • profile
    라엘 2017.07.16 13:41:24
    https://github.com/ctberthiaume/gdcp 라는 툴을 쓰면 가능할것 같아요.
  • profile
    웹지기 2017.07.16 10:02:12

    사이트를 어느정도 운영하다보면 백업용량이 10기가는 금방 넘어가는데요.

    이런 클라우드를 이용하려다 보니 용량의 문제 때문에 사용이 어렵더라구요. 비용을 지불하지 않는 방법으로 클라우드 서비스에 웹백업을 백업 할 수 있는 대안이 있을지 궁금합니다.

    지금은 PC에 내려받은 후 -> 외장하드에 저장
    이런 식으로 하고 있는데요..

    클라우드 -> 외장하드
    이런식으로 하고 싶어도 클라우드저장소 용량 때문에 현실적으로 어렵겠더라구요.


    웹서버에서
    백업 -> 클라우드 저장 -> 백업 -> 클라우드 이전 데이터 삭제 -> 신규백업자료 클라우드저장

    이게 가능하다면 20G 정도의 드롭박스 용량을 확보하면 10기가 넘는 웹자료도 클라우드에 할 수 있을 것 같기는 합니다. 물론 신규백업 일정 이전에 드롭박스 자료를 PC나 외장하드에 옮겨 놓아야 최신데이터가 아닌 이전 데이터도 보유 할 수 있겠지만요.

     

     

    *웹서버에서 같은 이름으로 반복해서 백업을 하게되면 에러없이 덮어 씌우는 식으로 백업이 될까요?

    *같은 이름으로 반복해서 드롭박스로 보내면 덮어 씌우기로 최신으로 동기화가 되서 최신 데이터로 저장이 될까요?

  • profile
    라엘 2017.07.16 13:42:31

    upload 말고 delete, move 같은 대부분의 리눅스 명령어가 가능합니다. delete 후에 upload 하면 될 것 같아요.

    유료 사용을 고려해보세요. dropbox 가 웹공유등 기능이 많아서 쓸만해요.

  • profile
    웹지기 2017.07.16 14:11:53
    그러게요. 1테라라면 백업 영향으로 충분할거 같으니 유료사용을 고려해 봐야겠습니다.

위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...