우분투 특정 데이터베이스(MariaDB)를 자동으로 백업 폴더에 저장하는 Bash 스크립트

백업 파일 이름을 현재 시간으로 설정하려면, 스크립트에서 DATE 변수를 사용하여 현재 시간을 파일 이름에 반영할 수 있습니다. 아래 예시에서는 파일 이름을 YYYYMMDD_HHMMSS 형식으로 설정하여, 각 백업이 고유한 시간에 맞는 이름을 가질 수 있도록 했습니다.

1. mariadb 데이터베이스 백업 스크립트 (현재 시간 기준 파일 이름)

스크립트: backup_db.sh

#!/bin/bash

# 변수 설정
DB_USER="your_db_user" # 데이터베이스 사용자명
DB_PASSWORD="your_db_password" # 데이터베이스 비밀번호
DB_NAME="your_db_name" # 백업할 데이터베이스 이름
BACKUP_DIR="/path/to/backup" # 백업을 저장할 디렉터리
DATE=$(date +"%Y%m%d_%H%M%S") # 현재 날짜 및 시간 (백업 파일명에 사용)
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_backup_${DATE}.sql" # 백업 파일 경로

# 백업 디렉토리가 존재하는지 확인하고 없으면 생성
if [ ! -d "$BACKUP_DIR" ]; then
mkdir -p "$BACKUP_DIR"
fi

# MySQL 데이터베이스 백업
mysqldump -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" > "$BACKUP_FILE"

# 백업이 성공적으로 완료되었는지 확인
if [ $? -eq 0 ]; then
echo "백업이 성공적으로 완료되었습니다: $BACKUP_FILE"
else
echo "백업에 실패했습니다."
fi

스크립트 실행권한주기

chmod +x /path/to/your/backup_db.sh

2. 자동 실행 설정 (crontab 사용)

위의 스크립트를 매일 자동으로 실행하도록 설정하려면, crontab을 사용할 수 있습니다.

  1. 터미널에서 crontab 파일을 엽니다:
crontab -e
  1. 매일 자정(0시)에 백업 스크립트를 실행하도록 추가:
0 0 * * * /path/to/your/backup_db.sh

위 설정은 매일 자정에 backup_db.sh 스크립트를 실행하여 데이터베이스를 백업하고, 백업 파일 이름을 현재 시간으로 저장하도록 설정합니다.

백업 파일 이름 예시

  • MariaDB 백업 파일 이름은 다음과 같이 생성됩니다:
  • your_db_name_backup_20250228_123000.sql

이렇게 하면 각 백업 파일이 정확한 시간에 따라 구분되며, 여러 번의 백업이 덮어쓰이지 않도록 할 수 있습니다.

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다