#!/bin/bash

DATE=$(date +"%Y-%m-%d_%H-%M-%S")

DB_USER="cuteweb_device"
DB_PASS="Device@123"

DB_NAME="cuteweb_device"

BACKUP_DIR="/home/cuteweb/public_html/cron/backup"

LOG_FILE="/home/cuteweb/public_html/cron/backup/backup_log.txt"

FILE_NAME="${DB_NAME}_$DATE.sql"

ZIP_NAME="${DB_NAME}_$DATE.zip"

# Create backup folder if not exists
mkdir -p $BACKUP_DIR

echo "==================================" >> $LOG_FILE
echo "Backup Started : $DATE" >> $LOG_FILE

# Create MySQL dump excluding tables
mysqldump -u$DB_USER -p"$DB_PASS" $DB_NAME \
--ignore-table=$DB_NAME.login_session \
--ignore-table=$DB_NAME.admin_session \
--ignore-table=$DB_NAME.attendance \
> $BACKUP_DIR/$FILE_NAME 2>> $LOG_FILE

# Check dump created or not
if [ -f "$BACKUP_DIR/$FILE_NAME" ]; then

    echo "SQL Dump Success" >> $LOG_FILE

    # Compress ZIP
    zip -j $BACKUP_DIR/$ZIP_NAME $BACKUP_DIR/$FILE_NAME >> $LOG_FILE 2>&1

    if [ -f "$BACKUP_DIR/$ZIP_NAME" ]; then

        echo "ZIP Created Successfully" >> $LOG_FILE

        # Optional remove SQL file
        rm -f $BACKUP_DIR/$FILE_NAME

        # Upload to Google Drive
        # rclone copy $BACKUP_DIR/$ZIP_NAME gdrive:VPS-Backups >> $LOG_FILE 2>&1

        echo "Backup Completed Successfully" >> $LOG_FILE

    else

        echo "ZIP Creation Failed" >> $LOG_FILE

    fi

else

    echo "MySQL Dump Failed" >> $LOG_FILE

fi

echo "Backup Finished : $(date +"%Y-%m-%d_%H-%M-%S")" >> $LOG_FILE
echo "==================================" >> $LOG_FILE