cron을 사용하여 Linux에서 MySQL 데이터베이스를 백업 및 복원하는 방법

1. mysql_backup.sh라는 루트 디렉토리에 새 .sh 파일을 만듭니다.




#!/bin/bash
# This script will backup the database
# and store in a specified directory.

# Constants

# Database credentials
USER="dev"
PASS="mypass123!"
DB_NAME="mydb"
HOST="localhost"
BACKUP_DIRECTORY="/root/backup_db"

# Add time stamp ( formated YYYYMMDD + HHMMSS)
# uses for the file name
CURRENT_DATA=$(date "+%Y%m%d-%H%M%S")

# Run mysqldump command
# we will backup the database into a .gz file
mysqldump -h ${HOST} \
-u ${USER} \
-p${PASS} \
${DB_NAME} | gzip - > $BACKUP_DIRECTORY/$DB_NAME\_$CURRENT_DATE.sql.gz


2. 파일 권한 변경




$ chmod 700 /root/mysql_backup.sh
or 
$ chmod +x /root/mysql_backup.sh


3. crontab을 사용하여 새 cron을 추가합니다.




crontab -e


데이터베이스가 30분마다 백업되도록 파일 끝에 이 명령을 추가하십시오.

*/30 * * * * bash /root/mysql_backup.sh > /dev/null 2>&1 


4. 파일을 데이터베이스로 복원하려면 다음 명령을 실행할 수 있습니다.




$ gunzip -c ...sql.gz | mysql -h localhost -U DB_NAME -u USER -p


내 게시물을 읽어 주셔서 감사합니다. 행복한 학습 ✌️.

좋은 웹페이지 즐겨찾기