#!/bin/bash

# ==========================================================
# KONFIGURASI DATABASE
# ==========================================================

DB_NAME="lpad9178_db_aset_kampus"
DB_USER="lpad9178_db_aset_kampus"
DB_PASS="db_aset_kampus"
DB_HOST="lpad9178_db_aset_kampus"

# ==========================================================
# FOLDER BACKUP
# ==========================================================

BACKUP_DIR="/home/lpad9178/backup_database"

# Buat folder jika belum ada
mkdir -p "$BACKUP_DIR"

# ==========================================================
# NAMA FILE BACKUP
# ==========================================================

DATE=$(date +"%Y-%m-%d_%H-%M-%S")

BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz"

# ==========================================================
# PROSES BACKUP
# ==========================================================

mysqldump \
    -h "$DB_HOST" \
    -u "$DB_USER" \
    -p"$DB_PASS" \
    --single-transaction \
    --routines \
    --triggers \
    --events \
    "$DB_NAME" | gzip > "$BACKUP_FILE"

# ==========================================================
# CEK HASIL BACKUP
# ==========================================================

if [ ${PIPESTATUS[0]} -eq 0 ] && [ -s "$BACKUP_FILE" ]; then

    echo "$(date) - Backup berhasil: $BACKUP_FILE"

else

    echo "$(date) - Backup GAGAL!"

    rm -f "$BACKUP_FILE"

fi

# ==========================================================
# HAPUS BACKUP LEBIH DARI 7 HARI
# ==========================================================

find "$BACKUP_DIR" \
    -type f \
    -name "*.sql.gz" \
    -mtime +7 \
    -delete

exit 0