Files
Gestion_sondes/scripts/backup_mysql.sh

38 lines
1.1 KiB
Bash

#!/bin/bash
# Variables
DATE=$(date +'%Y-%m-%d_%H-%M')
BACKUP_DIR="/home/debian/backup"
LOG_DIR="/home/debian/Gestion_sondes/Logs"
LOG_FILE="$LOG_DIR/backup_$DATE.log"
exec > "$LOG_FILE" 2>&1
BACKUP_FILE="$BACKUP_DIR/mysql_backup_$DATE.sql"
NAS_HOST="mon-nas" # défini dans /home/debian/.ssh/config
MYSQL_USER="root"
MYSQL_PASSWORD="$%kavYKeb1EY3Vl136O&o"
NAS_DIR="/volume1/nfs/vps_gra" # chemin sur le NAS
# Création du dossier local si besoin
mkdir -p "$BACKUP_DIR"
echo "🔷 Sauvegarde des bases MySQL..."
if mysqldump -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" --all-databases > "$BACKUP_FILE"; then
echo "✅ Sauvegarde locale terminée : $BACKUP_FILE"
else
echo "❌ Erreur lors de la sauvegarde MySQL"
exit 1
fi
echo "🔷 Envoi de la sauvegarde vers le NAS..."
if rsync -av -e ssh "$BACKUP_FILE" "$NAS_HOST:$NAS_DIR/"; then
echo "✅ Sauvegarde transférée sur le NAS : $NAS_HOST"
else
echo "❌ Échec du transfert vers le NAS"
exit 1
fi
echo "🔷 Nettoyage des sauvegardes locales de plus de 7 jours..."
find "$BACKUP_DIR" -type f -name "*.sql" -mtime +7 -exec rm -f {} \;
echo "🎉 Opération terminée avec succès !"