상세 컨텐츠

본문 제목

[sql] mysql 디비 자동 빽업 설정 하기 리눅스

mysql

by 2hansoul 2022. 7. 25. 22:00

본문

반응형

해당 경로에 data_backup/db 디렉토리 생성 

/home/ec2-user/data_backup/db

sql DB 빽업 스크립트 작성하기 

~# vi /bin/db_backup.sh

#!/bin/bash
DATE=$(date +%Y%m%d%H%M%S)
BACKUP_DIR=/data_backup/db/

# 전체 DB를 백업할 경우
mysqldump -u root -p디비패스워드 --all-databases > $BACKUP_DIR"backup_"$DATE.sql

# 특정 DB를 백업할 경우
# mysqldump -u root -p디비패스워드 --databases DB명  > $BACKUP_DIR"backup_"$DATE.sql



find $BACKUP_DIR -ctime +7 -exec rm -f {} \;

# DATE=$(date +%Y%m%d%H%M%S)는 백업할 파일명을 
# 202001224505 와 같은 형식으로 저장할 수 있게 날짜를 변수로 담습니다.  
# find $BACKUP_DIR -ctime +7 -exec rm -f {} \;  
# 여기서 -ctime +7은 7일이 지난 백업 파일을 찾아서 삭제하기 위한 코드입니다.  

# 추가로 분 단위로 설정하려고 할 때는 아래와 같이 
# -cmin +10 처럼 작성하면 10분이 지난 파일을 찾아서 삭제하게 됩니다.
# find $BACKUP_DIR -cmin +10 -exec rm -f {} \;

스크립트 권한 설정 하기 

 chmod 755 /bin/db_backup.sh

스케줄링 위해 crontab 설정 하기 

~# crontab -e

# 매일 새벽 6시에 백업이 진행됩니다.
00 06 * * * /bin/db_backup.sh

crontab 시간 설정 하는 방법

# 30분 마다 실행
*/30 * * * * /bin/db_backup.sh

# 매주 일요일 새벽 6시에 실행
0 06 * * 0 /bin/db_backup.sh

# 매월 1일 새벽 6시에 실행
0 06 1 * * /bin/db_backup.sh

# 매년 12월 31일 새벽 6시에 실행
0 06 31 12 * /bin/db_backup.sh
반응형

관련글 더보기

댓글 영역