#!/bin/bash
# mar. 27 mai 2025 10:50:33 CEST
# Copie complete le lundi
# Avec suppression au bout de 4 semaines
# Copies incrémentales les autres jours
# Avec suppression des incrémentaux > 7 jours
# NB: les copies OutBackup doivent en garder trace malgré ces destructions

DB_NAME="pcnrgy6"
DB_USER="root"
DB_PASS="fromspace"
BACKUP_DIR="/web/pcnrgy.pcstreet.org/.sauvegardes"
DATE=$(date +%Y%m%d)
DAY_OF_WEEK=$(date +%u)  # 1=Lundi, 7=Dimanche

mkdir -p "$BACKUP_DIR/full" "$BACKUP_DIR/incremental"

if [ "$DAY_OF_WEEK" -eq 1 ]; then
    # Lundi : Backup complet
    echo "$(date): Backup complet hebdomadaire"
    mysqldump -u "$DB_USER" --password="$DB_PASS" \
        --single-transaction \
        --routines \
        --triggers \
        "$DB_NAME" | gzip > "$BACKUP_DIR/full/${DB_NAME}_full_${DATE}.sql.gz"
    
    # Garder 4 semaines de backups complets
    find "$BACKUP_DIR/full" -name "${DB_NAME}_full_*.sql.gz" -mtime +28 -delete
else
    # Autres jours : Backup incrémental
    YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
    echo "$(date): Backup incrémental pour $YESTERDAY"
    
    mysqldump -u "$DB_USER" --password="$DB_PASS" \
        --single-transaction \
        --no-create-info \
        --where="DATE(strUtcTimeSTamp) = '$YESTERDAY'" \
        "$DB_NAME" WATTS | gzip > "$BACKUP_DIR/incremental/WATTS_${DATE}.sql.gz"
    
    # Garder 7 jours d'incrémentaux
    find "$BACKUP_DIR/incremental" -name "WATTS_*.sql.gz" -mtime +7 -delete
fi

