본문 바로가기
Linux/Ubuntu

[Ubuntu] crontab 및 mysqldump를 이용한 DB 백업 스크립트 작성

by 원동호 2021. 5. 26.
반응형

실행환경 :  Ubuntu 18.04.5 LTS, 10.1.47-MariaDB-0ubuntu0.18.04.1

 

주로 mysqldump 를 사용했지만 mariabackup을 이용한 증분 백업 방식도 있다.

 

아직 데이터의 양이 많지않아 증분백업보다는 mysqldump를 사용해서 Shell Script를 작성해볼것이다.

 

백업 스크립트 작성

# 파일의 위변조를 막기위해 퍼미션을 100(실행)으로 적용한다.
vim test.sh
#/bin/sh

# EX)FILE_NAME=DB_202105261140
FILE_NAME=DB_`date +"%Y%m%d%H%M%S"`

# EX)/home/test , 저장할 위치의 디렉토리는 퍼미션을 755로 적용 해준다.
SRC=저장할위치

DB_USER=DB 계정
DB_PASSWD=DB 비밀번호
DB_NAME=백업할 DB명

# mysqldump를 이용하여 저장할위치에 해당 파일명.sql로 저장한다.
/usr/bin/mysqldump -u${DB_USER} -p${DB_PASSWD} ${DB_NAME} > ${SRC}/${FILE_NAME}.sql

# 파일명.sql을 파일명.tar.gz로 압축한다.
tar -cvzf ${SRC}/${FILE_NAME}.tar.gz ${SRC}/${FILE_NAME}.sql

# 파일명.sql은 삭제한다.
rm -rf ${SRC}/${FILE_NAME}.sql

동작하는지 확인해 본다.

./test.sh

크론탭 데몬 확인하기

systemctl status cron

비활성화 되어있다면 실행해준다.

크론탭 작성

crontab -e

위 명령어를 입력하게 되면 편집기를 고를 수 있는데 vim이 익숙하기 때문에 vim을 선택한다. 혹 잘못 선택했더라도 크론탭 편집기를 변경 할 수 있으므로 걱정하지 않아도 된다.

 

아래 명령어를 입력하면 크론탭 편집기를 변경할 수 있다.

select-editor

크론탭에 관한 내용들은 검색하면 아주 많은 문서들이 있으므로 관련 설명은 생략하겠다 !

 

아래 스크립트는 매년 매월 매일 04시 00분에 /home/test 디렉토리의 test.sh를 실행하는 스크립트이다.

0 4 * * * /home/test/test.sh

크론탭 확인하기

crontab -l

저장된 크론탭 내용을 확인할 수 있다.

반응형

댓글