지금 현재 사이트 웹백업 용량이 11G 정도 됩니다. 컨텐츠가 매일 늘어나니 이 용량도 계속 늘어나는 구조인데요.

 

그래서 백업을 10일 정도에 한번정도만 합니다. 전체를 tar 압축하는 것 자체도 부하가 조금 걸린다고 들어서 굳이 매일 할 필요는 없다고 판단해서 10일 정도에 한번 정도만 백업 하고 그것을 제 개인PC로 내려 받고 있습니다.

 

이런 백업 말고 변경된 부분만 내려받아 백업하는 방식 ? 동기화인가요??? 

좀더 효율적으로 백업을 할 수 있는 방법이 설명되어 있는 곳이 없을까요??

 

저는 개인적으로 이런 상상까지 해봤습니다. 저희 서버와 다른 어떠한서비스(클라우드저장서비스..) 와 동기화를 해 놓으면 주기적으로 데이터를 서버 -> 클라우드저장소 로 동기화 해주는 것이 있을텐데.. 라는 ....  있을 것 같은데요... 제가 모르는 거 같기도 하구요...

 

좀 서버한테 일  덜시키고 쉽게 백업하는거 없을까요??

 

  • ?
    용량이 많으니 부담스러우실 듯하네요.

    전 5기가 정도 되어서... 매일 새벽 4시에는 DB백업, 4시 5분에 데이터 파일 백업 후

    드롭박스에 업로드 시켜줍니다.

    드롭박스 용량이 많지 않기 때문에 주기적르로 드롭박스가서 삭제해주고요 ㅎㅎ

    https://github.com/andreafabrizi/Dropbox-Uploader

    전 요거 쓰고 있습니다.

    스크립트는 요걸로... https://www.wsgvet.com/odroid/60
  • ? profile
    매일이던 열흘이던 전체를 백업하는게 부담스러워 질문을 올린거에요.
  • profile

    리눅스 서버에서는 rsync와 rsnapshot을 활용하면 변경된 파일만 백업할 수 있습니다.

    10G짜리 사이트의 30일치 백업을 각각 따로 보관해도 전체 용량은 12G 정도밖에 차지하지 않아요.

    (변경되지 않은 파일은 실제 디스크상에 한 번만 저장하기 때문)

     

    이 방법으로 서버 내의 다른 HDD에 백업을 저장하거나, 다른 리눅스 서버로 백업할 수도 있습니다.

    백업서버를 신뢰한다면 굳이 집으로 다운로드할 필요는 없습니다.

     

    "백업"이 아닌 "동기화"는 권장하지 않습니다.

    애초에 백업을 하는 목적이 실수로 뭘 지우거나 잘못 건드렸을 때 복구하는 건데

    실시간으로 동기화를 해버리면 실수로 지우거나 수정한 것까지 모두 동기화되어 버립니다 ㄷㄷㄷ

    또한 XE처럼 DB와 파일이 서로 맞아떨어져야 하는 CMS라면

    특정 시간대의 DB와 파일 상태를 그대로 보존하는 것이 더 중요하거든요.

    파일을 열심히 동기화해 놓았는데 DB가 맞지 않으면 난감해요.

  • profile profile
    증분백업이라고 들어보긴 했는데 이것과 관련해서 좀 알아볼 수 있는 문서가 있을까요??? 제가 사용하는 클라우드서버의 경우 신청을 하면 하드를 설치해 주는 것으로 알고 있는데 이 경우가 이렇게 백업을 하는게 아닌가 생각이 들기도 합니다.
  • profile profile
    rsync, rsnapshot을 검색해 보세요. DB 백업은 mysqldump를 사용하시면 됩니다.
    (rsnapshot은 내부적으로 rsync를 사용합니다. 서로 무관한 유틸이 아니예요.)
  • profile ?
    rync 들어봤는데 해봐야겠네요!!!

    rsnapshot 처음 들어봤는데 좋아보이네요.
  • profile profile
    일단 제 컴에 vmware를 깔고 우분투까지 깔고 rsnapshot 까지 인스톨을 했는데 다음에 진행할 만한 자료가 검색에서 찾기가 쉽지 않네요~ 어차피 db야 매일 백업을 할 것이라 따로 원격으로 하지는 않을 생각인데요. 웹백업은 지금 처럼 tar로 매번 백업하는 것이 아닌 증분백업이라도 원격으로 할 수 있으면 하고 찾아보는데 쉽지 않네요.
  • profile profile
    상당수의 튜토리얼이 서버 전체를 백업한다거나, 일간/주간/월간 백업을 한 번에 관리하는 것을 설명하고 있어요. 쓸데없이 복잡하죠. 수동으로 백업하거나 crontab을 사용하신다면 설정파일(rsnapshot.conf) 하나를 별도로 만들어서 -c 옵션을 쓰는 것이 가장 편리합니다.

    설정파일의 공백은 죄다 탭이어야 한다는 것도 함정... 안정성은 좋은데 너무 불친절한 프로그램이예요.
  • profile
    집에서 사용하는 피시에 리눅스를 깔고 기진곰님 말씀하신 rsnapshot를 사용해서 원격백업하는 것이 가장 저렴하게 사용하는 방법입니다.
    제가 그렇게 사용하고 있고, 지금 글을 쓰는 컴퓨터가 리눅스깔린 피시입니다.
  • profile profile
    일단 제 PC에 가상화로 리눅스를 먼저 설치하고 알아보는게 순서겠네요. 조언 감사합니다.
  • ?
    용량이 11G에요?
    몇일치를 백업하시기에...
    ㅠ.ㅠ 파일사이트운영하시나봐요
  • ? profile
    5년 가까이 회원들이 작성한 글에 포함된 이미지들이 많아서 그정도 용량이 나옵니다.
  • profile ?
    대단하네요....5년...
    솔직히 옛날 안보는글들은 좀 정리하는게 어떨까 싶네요.
    옛날 글들이 사라진다고 사이트에 문제가 생기진 않을것 같은데
    용량을 좀 관리하시는게 어떠한지요?
  • ? profile
    회원들의 소중한 추억과 자산을 왜 정리하죠? 개인이 운영하긴 하지만 개인의 자산이 아닙니다.
  • profile ?
    아하... 좋은마인드시네요 ㅠㅠ 죄송합니다..
    단순히 운영 효율만을 보앗네요^^
  • profile
    저도 rsync ... 근데 복원할때 헷갈림..
  • profile profile
    백업본이 전혀 다르게 생겼나요?
  • profile profile
    혹시 rsync 로 증분백업 하시는거 어떻게 하시는건지 알려주실수...........
  • profile profile

    rsync -avz --exclude=files/cache --exclude=files/supercache 서버아이디@서버주소:/서버측/경로/ /로컬/경로/

    XE 슈퍼캐시 사용 기준입니다. 캐시폴더는 변경분이 많아서 괜히 용량만 커지니 제외합니다. 어차피 복원하게 되면 자동으로 다시 생길 파일들이니까요.

    서버측 경로와 로컬 경로 뒤에 각각 붙는 슬래시(/)가 중요합니다. 이걸 일관성있게 사용하지 않으면 로컬 경로 안에 폴더가 하나 더 생겨서 백업이 오락가락할 수 있어요. 특히 아래에서 설명드릴 --delete 옵션 사용시 경로가 틀어지면 엉뚱한 파일이 삭제될 수 있으므로 매우 위험합니다.

    좀 해보시고 자신이 생기면 --delete 옵션을 추가하시면 서버측에서 삭제된 파일이 로컬에서도 삭제되도록 할 수 있습니다. 순서를 거꾸로 하면 서버측 파일을 마구 삭제할 수 있으니 주의!

  • profile profile

    같은 시간대에 아래의 방법으로 DB 백업도 생성하셔야 합니다. rsync가 실수로 지우거나 덮어씌우지 않도록 DB 백업용 폴더를 따로 두세요.

    ssh 서버아이디@서버주소 "mysqldump --opt --single-transaction -u디비아이디 -p디비비번 디비명 | gzip -c" > /로컬/경로/디비덤프파일명.sql.gz

    이 명령을 사용하면 서버에 접속하여 mysqldump를 실행한 후 그 결과를 gzip으로 압축하고, 압축 파일을 서버에 따로 저장하지 않고 그대로 다운로드해서 디비덤프파일명.sql.gz에 저장합니다.

     

    서버측 계정 홈 디렉토리에 .my.cnf 숨김파일을 만들어서 아이디와 비번을 미리 입력해 두면 명령줄에 일일이 넣을 필요가 없어서 편리합니다.

  • profile profile
    서버에서 read only로 설정하는게 있는거 같더라구요. 그렇게 해 놓고 서버에서 삭제시 리모트도 삭제되게 해야 할 거 같은데요. 그래야 의미있는 백업이 될 거 같아서요.

    근데 이렇게 하면 오늘,3일전,5일전,7일전 이런게 안되는거 같아서요.
  • profile profile
    db는 그냥 full backup으로 매일 하려고 해요.. 웹백업만 증분으로 좀 해보려구요. db백업은 용량도 크지 않아 부담이 되지 않으니 그냥 지금처럼 서버에 매일 백업본 내려 받아두는거로 할 생각이에요.
  • profile profile
    DB는 당연히 증분백업이 아니라 풀 백업을 하셔야지요. 그러나 DB 파일(/var/lib/mysql)을 다운받는 것은 무의미합니다. DB는 실시간으로 계속 변하기 때문에 mysqldump 같은 유틸리티를 사용하지 않고 그냥 다운받으면 깨질 가능성이 높아요. 나중에 복원하려고 할 때 아주 불쾌한 상황이 발생합니다.
  • profile profile
    저걸 crontab에 넣어 놓고 매일 일정한 시간대에 돌리세요.

    일정 기간 동안의 백업을 각각 별도로 보관하는 것은 rsnapshot이고요.

    rsnapshot 쓰기 귀찮은데 백업 공간이 넉넉하다면 7개의 카피를 만들어 놓고 요일별로 하나씩 덮어씌우는 꼼수도 있어요. 최대 7일간의 백업을 보존하게 되지요 ㅎㅎ
  • profile profile
    네. 지금 매일 mysqldump 라는 것이 포함된 스크립트로 백업하고 있어요.
  • profile profile
    아.. 그럼 경로를 여러개 만들어서 일정한 간격으로 돌려서 백업본을 여러개 만들라는 것이군요. 이렇게 하면 용량이 돌리는 횟수배 만큼 차지하게 되는거네요....
  • profile profile
    네, 원리는 똑같은데 rsnapshot은 파일을 실제로 복사하지 않고 하드링크를 사용해서 실제 디스크상에 저장되는 용량을 줄여 주는 것 뿐이예요. 흔히 쓰는 심볼릭 링크보다 더 감쪽같습니다.
  • profile profile
    테스트로 지금 해보는데 접속 관련 인증 과정이 필요한데요.. 이거는 크론탭으로 할경우 어떠한 조치가 필요할까요?? can't be establised. ECDSA jey finferprint is SHA256:~~~~.
    Are you sure............. connecting (yes/no)?
    password:

    지금 수동으로 yes 와 패스워드를 타이핑해줬습니다.
  • profile profile
    public key를 사용하여 ssh 자동 로그인하는 방법을 검색해 보세요.
  • profile profile
    그냥 간편하게 sshpass -p 'myPassword' 이것으로 하니 되네요. 감사합니다.
  • ?
    files폴더랑 files폴더 외의 것이랑 2개로 백업을 나눈뒤 각각 시간을 다르게하여 백업했었습니다.
  • profile
    저도 r싱크 이용하여 오리지날 백업본, 각요일 백업분 이렇게 만들어서 관리하고 있습니다.