- Xtrabackup을 모방한 툴이며 mariadb 10.4 이상부터 지원하는 물리백업 툴이다.
## crontab -e
# 매일 오후 10시에 mariadb_backup.sh 실행
2 0 * * * /backup/scripts/mariadb_backup.sh
#!/bin/bash
DATE=$(date +"%Y%m%d_%H%M%S")
BACKUP_DIR="/data/hotbackup"
TMP_BACKUP_DIR="${BACKUP_DIR}/mariabackup_${DATE}"
ZIP_FILE="${BACKUP_DIR}/mariabackup_${DATE}.zip"
BASEDIR="/usr/mariadb"
USER="root"
PASSWORD="1234"
SOCKET="/data/mariadb/mysql.sock"
DATADIR="/data/mariadb"
MBACKUP_BIN="$BASEDIR/bin/mariabackup"
# 임시 백업 폴더 생성
mkdir -p "$TMP_BACKUP_DIR"
# mariabackup 백업 실행 (백업 데이터 저장)
$MBACKUP_BIN --backup --target-dir="$TMP_BACKUP_DIR" --user="$USER" --password="$PASSWORD" --socket="$SOCKET" --datadir="$DATADIR"
if [ $? -ne 0 ]; then
echo "❌ mariabackup 백업 실패"
rm -rf "$TMP_BACKUP_DIR"
exit 1
fi
# 백업 폴더를 zip 압축
cd "$BACKUP_DIR"
zip -r "$ZIP_FILE" "$(basename "$TMP_BACKUP_DIR")"
if [ $? -eq 0 ]; then
echo "✅ 백업 및 압축 완료: $ZIP_FILE"
rm -rf "$TMP_BACKUP_DIR"
else
echo "❌ 압축 실패"
fi
# 7일 이상 지난 백업 zip 및 디렉토리 삭제
find "$BACKUP_DIR" -name "mariabackup_*" -mtime +7 -exec rm -rf {} \\;