DataBase/Mysql

MySQL 백업 자동 스크립트 생성 및 crontab 백업 설정

projin 2019. 9. 7. 09:39

MySQL 백업 스크립트 생성

 

먼저 “mysql-backup.sh” 라는 컨텐츠를 가진 스크립트를 생성 하여 시스템에 저장해야합니다. 요구 사항에 따라 아래 값을 변경하십시오.

# mkdir /root/backup/ 
# cd /root/backup/ 
# vi mysql-backup.sh

 

# !/bin/bash 
############################################### ############## 
## 
## MySQL 데이터베이스 백업 스크립트  
## 작성자 : 웹인스토리
## 웹 사이트 : https://webinstory.tistory.com
## 
############################################### ############## 
  
export PATH=/bin:/usr/bin:/usr/local/bin

TODAY=`date +"%d%b%Y"`
  
############################################### ############## 
################## 아래 값 업데이트 ####################### 
  
BACKUPPATH = '/data/db' 
MYSQL_HOST = 'localhost' 
MYSQL_PORT = '3306' 
MYSQL_USER = 'root' 
MYSQL_PASSWORD = '비밀번호' 
DATABASE_NAME = 'mydb' 
BACKUPRETAINDAYS = 7 ## 로컬 백업 사본을 보관하는 일 수 
  
############################################### ############### 
  
mkdir -p $ {BACKUPPATH} / $ {TODAY} 
echo "데이터베이스 백업이 시작되었습니다-$ {DATABASE_NAME}" 
  
  
mysqldump -h $ {MYSQL_HOST} \ 
   -P $ {MYSQL_PORT} \ 
   -u $ {MYSQL_USER} \ 
   -p $ {MYSQL_PASSWORD} \ 
   $ {DATABASE_NAME} | gzip> $ {BACKUPPATH}/$ {TODAY}/$ {DATABASE_NAME}-$ {TODAY} .sql.gz 
  
if [$? -eq 0]; then
  echo "데이터베이스 백업이 성공적으로 완료되었습니다" 
else
  echo "백업 중 오류가 발견되었습니다" 
fi 
  
## {BACKUPRETAINDAYS} 일보다 오래된 백업 제거 
  
DBDELDATE=`date +"%d%b%Y" --date="${DBRETAINDAYS} days ago"`
  
rm -rf $ {BACKUPPATH}/$ {DBDELDATE} 
  
### 스크립트는 여기서 끝납니다 #######

 


파일을 저장하고 닫습니다. 이제 mysql-backup.sh 파일에 대한 실행 권한을 설정하십시오.

 

# chmod + x /root/backup/mysql-backup.sh

 

 

 

MySQL 백업 예약
이 스크립트는 데이터베이스 백업 요구 사항에 따라 매일, 매주, 매월 실행되도록 스케줄 할 수 있습니다. 아래 명령을 입력하여 시스템에서 crontab 항목을 편집하고 mysql-backup.sh 스크립트에 대한 cron 작업을 설정하십시오 .

 

 

# crontab -e 
@daily root /backup/scripts/mysql-backup.sh

 

crontab 파일을 저장하십시오. 위의 cron에서 매일 MySQL 백업을 예약했습니다.