우분투 mariaDB 자동 백업하기

예전에 외장하드가 깨지면서 10년 넘게 모았던 데이터가 한번에 날라 갈뻔 한적이 있었죠.
그 뒤론 중요 데이터는 거의 항상 분리된 매체로 두개 이상 백업을 하고 있습니다.
(그렇게 시작한게 벌써 8년전이네요)

티스토리 쓸땐 뭐 다음이 알아서 잘 백업하고 있겠지 하는 생각이었지만 개인서버를 쓰니 그게 안되는군요.
뭘해도 좀 불안합니다.  그래서 파일은 freefilesync 을 이용해서 DB는 HeidiSQL 을 사용해서 수작업으로
하루에 한번씩 자기전에 백업하고 있었습니다.

freefilesync 는 외장하드 연결하고 버튼만 눌러주면 되니 별로 불편한게 없는데 DB는 sql로 추출하기 해서
날짜별로 압축해서 이름 바꿔서 폴더로 이동한 다음에 다시 freefilesync 를 통해 백업을 하고 있었죠.
그러다 보니 가끔은 깜빡 할때도 있습니다.

그래서 자동화 하기로 했습니다.

#!/bin/bash

backupPath=/home/linsoo/server/backup/
backupDate=$(date +%Y%m%d_%H%M%S)

 
USERNAME=디비아이디
PASSWORD=디비비번
DATABASE=디비이름

mysqldump -u$USERNAME -p$PASSWORD  $DATABASE > $backupPath/$backupDate'_'$DATABASE'.sql'

zip -j $backupPath$backupDate'_backupDB.zip' $backupPath$backupDate'_'$DATABASE'.sql'
rm $backupPath$backupDate'_'$DATABASE'.sql'

find $backupPath* -mtime +13 -name "*backupDB*" -exec rm {} \;

저는 autoBackupDB.sh 라는 이름으로 했습니다.
날짜_시간_디비이름으로 백업해서 zip으로 압축하도록 했습니다.


draco님 댓글을 보고 14일 이상 지난 백업파일은 스크립트 실행할때 마다 검사해서 삭제하는 부분 추가했습니다.


$ chmod 700 autoBackupDB.sh

실행 권한을 주고 (스크립트내 db 비번이 저장되니 반드시 700 권한을 주세요)

$ sudo vi /etc/crontab

크론탭을 열어서

0 0 * * * root /home/linsoo/server/autoBackupLog.sh

이렇게 추가해줬습니다.

참고로 크론탭 명령구문 설명입니다.
  [MM] [HH] [DD] [mm] [d] [command]  

필드

 의미

 범위

 첫 번째 분 0~59
 두 번째 시 0~23
 세 번째 일 1~31
 네 번째 월 1~12
 다섯 번째 요일 0~7 (0,7 : 일요일, 1 : 월요일)
 여섯 번째실행할 계정root, user …
 일곱 번째 명령어 실행할 명령을 한줄로 쓴다.

*값을 넣으면 해당 필드의 모든 항목이라고 생각하면 됩니다.

저는 0 0 * * * 이니 0분 0시 매일 매월 모든 요일 이라는거죠. (자정에 한번씩 백업하도록 했습니다)

freefilesync 가 저 server 폴더를 통째로 백업하기 때문에 이제 HeidiSQL 로 일일이 추출해서 백업할 필욘 없죠.

 

끗!


크리에이티브 커먼즈 라이선스Linsoo의 저작물인 이 저작물은(는)크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

“우분투 mariaDB 자동 백업하기”에 대한 2개의 댓글

  1. 좋은 정리 이십니다.
    다들 아시겠지만 혹시 이 글을 참고해서 서버세팅을 하실 초보분이 있을까 몇줄 적자면,
    1. 백업해 놓을 하드디스크 용량이 아주 크지 않다면, 백업스크립트 앞부분에 1주일이상이나 1달이상 등의 조건으로 오래된 백업파일을 삭제하는 부분을 넣어주시는게 좋습니다.
    백업스크립트만 믿고 있다가 용량이 다차서 백업 안되고 있어서 낭패보는 경우는 고수들도 종종 생깁니다.
    삭제하는 스크립트는 구글링해보면 많습니다.
    2. 백업한 파일을 권한 열려 있는 디렉토리에 저장하거나, 파일권한을 777같은걸로 하거나 하지 않아야 합니다. 저 스크립트 파일도 DB 비번이 있기 때문에, 같은 주의를 기울여야 하죠.

댓글 남기기

이메일은 공개되지 않습니다.

This site uses Akismet to reduce spam. Learn how your comment data is processed.