2018년 9월 9일

MariaDB 자동백업 백업주기 설정 logrotate (DB 백업)

Step 1. 쉘스크립트 파일을 작성한다.
vi [쉘파일저장경로]backup.sh
?
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
#!/bin/bash
today=`date +%Y%m%d`
deleteDay=`date +%Y%m%d -d '-[백업파일보존일수]days'`
backupDirectory="[파일저장경로]"
dbList='[데이터베이스1] [데이터베이스2]'
### create Folder ###
echo "createDay : "$today
/bin/mkdir -p ${backupDirectory}/${today}_all
cd ${backupDirectory}/${today}_all
echo "OK"
### backup Project ###
for db in $dbList; do
   echo "backupDB : "$db
   /bin/mkdir -p ${backupDirectory}/${today}_all/$db
   mysqldump -u [아이디] -p'[비밀번호]' --skip-add-drop-table --no-create-info --complete-insert --ignore-table=[제외시킬테이블] $db > ${backupDirectory}/${today}_all/$db/$db.sql
done
Step 2. 스크립트 파일이 주기적으로 실행되도록 스케쥴러에 등록한다.
crontab -e
?
001
002
# 새벽 5시에 백업
00    05    *    *    *    [쉘파일저장경로]backup.sh
[참고] 백업 받은 파일을 또다른 서버(개발 또는 스테이징)에 복사한 후 다음 명령으로 데이터를 IMPORT할 수 있다.
* 백업파일 IMPORT (리눅스)
?
001
002
[MYSQL경로]/mysql -u [아이디] -p [데이터베이스1] < [백업파일저장경로][데이터베이스1].sql
[MYSQL경로]/mysql -u [아이디] -p [데이터베이스2] < [백업파일저장경로][데이터베이스2].sql
* 백업파일 IMPORT (윈도우)
?
001
002
[MYSQL경로]\mysql.exe -u [아이디] -p"[비밀번호]" [데이터베이스1] < "[백업파일저장경로][데이터베이스1].sql"
[MYSQL경로]\mysql.exe -u [아이디] -p"[비밀번호]" [데이터베이스2] < "[백업파일저장경로][데이터베이스2].sql"
[참조사이트]
http://myblog.opendocs.co.kr/archives/1710

댓글 2개:

  1. step1 16라인 "${today}" => ${today}_all

    답글삭제
    답글
    1. 경로 오타 수정해주셔서 감사합니다. 적용하였습니다.

      삭제

추천 게시물

Elisabeth Chaplin (1890~1982)

 프랑스의 예술가 집안에서 태어난 '엘리자베스 채플린'은, 10살 때 가족과 함께 이탈리아로 이사를 갔습니다. 우피치미술관을 방문하고 나서 미술에 푹 빠져버렸죠.  정식교육을 받지는 않았지만 그녀는 우피치미술관에서 명작들을 보고 따라그리...