본문 바로가기

서버

docker - mariadb 주기적 dump 로 백업관리

728x90

docker로 db 사용시 

주기적으로 백업 데이터를 관리해야한다.

 

다음과 같이 백업 데이터를 관리한다.

1. 덤프 데이터 뜨기

2. gzip 압축

3. 시놀로지 전송

4. 7일 이상된 파일 제거

 

리눅스에서는 크론탭으로 스케줄링이 가능하다

 

아래 쉘스크립트는 시놀로지 전송을 제외한 스크립트.

 

1. 쉘스크립트 작성

#!/bin/bash

DATE=$(date +%Y%m%d_%H%M%S)
CONTAINER=db이름
USER=root
PASSWORD=비번
BACKUP_DIR=경로지정

# 디렉토리 생성
mkdir -p $BACKUP_DIR

# dump + 압축
docker exec $CONTAINER \
  mysqldump -u $USER -p$PASSWORD --all-databases \
  | gzip > $BACKUP_DIR/db_$DATE.sql.gz

# 7일 지난 파일 삭제
find $BACKUP_DIR -type f -mtime +7 -delete

 

 

2. 크론탭 등록

crontab -e

 

0 3 * * * /path/to/script.sh