데이터베이스 자동 백업 스케줄링 방법

1. 백업 스크립트 만들기

/usr/local/bin/mysql_backup.sh

#!/bin/bash

# === 설정 ===
USER="root"                 # MySQL 계정
PASSWORD="비밀번호"          # MySQL 비밀번호
DATABASE="my_database"      # 백업할 DB 이름
BACKUP_DIR="/var/backups/mysql" # 백업 파일 저장 경로

# === 실행 ===
mkdir -p $BACKUP_DIR

FILE_NAME="${DATABASE}_$(date +%F_%H-%M-%S).sql.gz"

mysqldump -u $USER -p$PASSWORD $DATABASE | gzip > $BACKUP_DIR/$FILE_NAME

# 오래된 백업 삭제 (30일 이상)
find $BACKUP_DIR -type f -mtime +30 -delete

2. 스크립트 권한 부여

chmod +x /usr/local/bin/mysql_backup.sh

3. corn에 등록(스케줄링)

crontab -e
0 2 * * * /usr/local/bin/mysql_backup.sh

4. 복원 방법

gunzip < my_database_2025-08-11_02-00-00.sql.gz | mysql -u root -p my_database