쉘 스크립트를 이용한 MySQL 백업 자동화 가이드

서론

데이터베이스는 모든 비즈니스와 서비스의 핵심 자산입니다.
중요한 데이터는 정기적으로 백업하여 데이터 손실에 대비하는 것이 필수적입니다.
여러분도 혹시 데이터베이스 백업 작업을 수작업으로 진행하시나요?
그렇다면, 자동화 스크립트를 사용하여 백업 작업을 간편하게 관리할 수 있습니다.
오늘은 리눅스에서 자동화 스크립트를 활용해 MySQL 데이터베이스 백업을 설정하는 방법에 대해 알아보겠습니다.



본론

1. 준비 사항

자동화 스크립트를 작성하기 전에 다음 사항을 준비해야 합니다.
  • MySQL이 설치된 서버 (CentOS 또는 Ubuntu)
  • 백업을 저장할 디렉토리 (예: /backups)
  • MySQL 사용자 계정과 비밀번호

2. 스크립트 작성

아래는 MySQL 데이터베이스를 백업하는 쉘 스크립트 예제입니다.
이 스크립트는 지정된 디렉토리에 백업 파일을 생성합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
 
# 변수 설정
BACKUP_DIR="/backups"
MYSQL_USER="your_mysql_user"
MYSQL_PASSWORD="your_mysql_password"
DATABASE_NAME="your_database_name"
 
# 현재 날짜와 시간을 변수에 저장
DATE=$(date +"%Y%m%d%H%M")
 
# 백업 파일 이름 설정
BACKUP_FILE="$BACKUP_DIR/$DATABASE_NAME-$DATE.sql"
 
# 백업 디렉토리 존재 여부 확인 및 생성
if [ ! -"$BACKUP_DIR" ]; then
    mkdir -"$BACKUP_DIR"
fi
 
# MySQL 데이터베이스 백업 실행
mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD $DATABASE_NAME > $BACKUP_FILE
 
# 백업 성공 여부 확인
if [ $? -eq 0 ]; then
    echo "Database backup was successful!"
else
    echo "Database backup failed!"
fi
cs


3. 스크립트 설명

  • BACKUP_DIR: 백업 파일을 저장할 디렉토리 경로를 지정합니다.
  • MYSQL_USER와 MYSQL_PASSWORD: MySQL 데이터베이스에 접근하기 위한 사용자명과 비밀번호를 입력합니다.
  • DATABASE_NAME: 백업할 데이터베이스의 이름을 입력합니다.
  • DATE: 백업 파일 이름에 현재 날짜와 시간을 포함하여 고유한 이름을 생성합니다.
  • BACKUP_FILE: 생성할 백업 파일의 전체 경로를 지정합니다.
  • mysqldump: MySQL 데이터를 덤프하여 백업 파일을 생성하는 명령어입니다.

4. 스크립트 실행 권한 설정

스크립트를 실행 가능하도록 권한을 설정합니다.

1
chmod +x /path/to/your/backup_script.sh
cs

5. 크론탭에 등록하여 자동화

크론탭(crontab)을 사용하여 백업 스크립트를 정기적으로 실행하도록 설정할 수 있습니다.


1
crontab -e
cs

다음 줄을 추가하여 매일 자정에 백업 스크립트가 실행되도록 설정합니다.

1
0 0 * * * /path/to/your/backup_script.sh
cs

결론

이렇게 하면 MySQL 데이터베이스 백업 작업을 자동화할 수 있습니다.
스크립트와 크론탭을 활용하여 백업을 자동으로 실행하면, 데이터 손실 걱정을 덜고 보다 안정적으로 시스템을 운영할 수 있습니다.
자동화 스크립트를 통해 더 효율적으로 시스템을 관리해 보세요.

댓글

이 블로그의 인기 게시물

crontab 설정방법과 로그 확인하는 법

Microsoft Defender 방화벽 설정 또는 해제하는 방법

한국 군비지출 세계 9위