티스토리 뷰

도구의발견

MySQL 백업 스크립트

kukuta 2015. 3. 6. 17:17

아래 쉘 스크립트를 crontab등에 등록 해두고 매일매일 실행 시키면 4일 까지의 덤프 데이터가 남는다.

 

#!/bin/sh

BACKUP_DIR=/home/SOMEWHERE/db_backup
TODAY=`date +%Y%m%d`
RETENTION_PERIOD=4  # 백업 덤프 파일 보관 기간 4일

 

DAY_BEFORE_RETENTION_PERIOD=`date --date "${RETENTION_PERIOD} day ago" +%Y%m%d`

#echo "DAY_BEFORE_RETENTION_PERIOD:"${DAY_BEFORE_RETENTION_PERIOD}

 

#유저가 작성한 DB 목록 추출

mysql -u root -h 127.0.0.1 -P 3306 --password='PASSWORD' --skip-column-names -e "select schema_name from information_schema.schemata where schema_name not in ('information_schema','mysql','performance_schema')" > ${BACKUP_DIR}/backup_schema_list.${TODAY}

 

for db_schema in `cat ${BACKUP_DIR}/backup_schema_list.$TODAY | awk '{print $1}'`
do
        backup_schema_list=${backup_schema_list}" "${db_schema}
done

 

# 백업 파일 덤프
mysqldump -u root --password='PASSWORD' --master-data=2 --routines --events --single-transaction --databases ${backup_schema_list} > ${BACKUP_DIR}/tk_db_backup.${TODAY}.sql

rm -f ${BACKUP_DIR}/tk_db_backup.${DAY_BEFORE_RETENTION_PERIOD}.sql

 

'도구의발견' 카테고리의 다른 글

[Unity] Texture2D를 Sprite로 변경  (0) 2017.02.28
Ubuntu Apache(14.04) 설치  (0) 2015.04.29
MySQL 백업 스크립트  (1) 2015.03.06
MySQL master-slave 리플리케이션(my.cnf 설정)  (0) 2015.03.06
MySQL Event 등록  (2) 2014.09.24
svn externals 설정  (0) 2014.07.18
TAG
댓글
댓글쓰기 폼