여기에서는 예시로 새벽 3시 1분에 자동 백업이 되도록 합니다.
3일치 로테이션 백업을 cron으로 자동화 하려고 하며 필요에 따라서는 7일과 같이 수정해서 사용할 수 있습니다.
1. 백업 스크립트 생성 (backup_mariadb.sh)
백업 스크립트를 생성하기 위해서는 자동 실행하는 스크립트 파일 .sh 를 먼저 만들어야 합니다.
텍스트 편집기는 vi, nano, vim 등을 사용하며 /home/backup 디렉토리에 backup_mariadb.sh 파일을 생성 해 보겠습니다.
#!/bin/bash
# 백업 디렉토리
BACKUP_DIR="/home/backup"
# MariaDB 접속 정보 (보안을 위해 환경 변수 또는 별도 설정 파일에서 관리하는 것을 권장합니다.)
DB_USER="your_mariadb_user"
DB_PASSWORD="your_mariadb_password"
DB_NAME="your_database_name"
DB_HOST="localhost" # 필요에 따라 변경
# 백업 파일명 형식 (날짜 포함)
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_$(date +'%Y%m%d').sql.gz"
# mysqldump 실행 (gzip으로 압축)
mysqldump -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" | gzip > "$BACKUP_FILE"
# 백업 성공 메시지 (선택 사항)
echo "MariaDB 백업 완료: $BACKUP_FILE"
# 3일 이전 백업 파일 삭제
find "$BACKUP_DIR" -name "${DB_NAME}_*.sql.gz" -type f -mtime +3 -delete
# 삭제 완료 메시지 (선택 사항)
echo "3일 이전 백업 파일 삭제 완료."
exit 0
2. 스크립트에 실행 권한 부여
작성한 스크립트에 실행 권한을 부여해야 cron에서 실행할 수 있습니다. 터미널에서 다음 명령어를 실행하세요.
chmod +x /home/backup/backup_mariadb.sh
3. crontab 일정 설정
이제 cron에 작업을 등록하여 매일 새벽 3시 1분에 스크립트가 자동으로 실행되도록 설정합니다.
crontab -e
01 03 * * * /home/backup/backup_mariadb.sh
4. crontab 확인
설정이 제대로 되었는지 확인하려면 다음 명령어를 실행합니다.
# crontab -l
01 03 * * * /home/backup/backup_mariadb.sh
cd /home/backup/
./backup_mariadb.sh
MariaDB 백업 완료: /home/backup/dut_20250507.sql.gz
3일 이전 백업 파일 삭제 완료.
ls -la
total 432
drwxr-xr-x 3 root root 69 May 7 20:59 .
drwxr-xr-x. 5 root root 71 May 1 21:13 ..
-rwxr-xr-x 1 root root 821 May 7 20:58 backup_mariadb.sh
-rw-r--r-- 1 root root 435966 May 7 20:59 dut_20250507.sql.gz