Files
mash-lab/scripts/backup_mariadb.sh

39 lines
1.2 KiB
Bash

#!/bin/bash
# Répertoire des backups
BACKUP_DIR="/mnt/backup_syno/dumps/mariadb/$(date +%F)"
mkdir -p "$BACKUP_DIR"
# Paramètres de connexion (exposés par Docker)
MARIADB_HOST="127.0.0.1"
MARIADB_PORT="3306"
MARIADB_USER="root"
MARIADB_PASSWORD="&22dt4H4&owV8DPb"
# Vérifie si le client mysql est dispo
if ! command -v mysql &> /dev/null; then
echo "mysql non trouvé. Installation silencieuse du client MariaDB..."
sudo apt-get update -qq
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mariadb-client > /dev/null
fi
# Liste des bases (hors systèmes)
DATABASES=$(mysql -h $MARIADB_HOST -P $MARIADB_PORT -u$MARIADB_USER -p$MARIADB_PASSWORD \
-e "SHOW DATABASES;" 2>/dev/null | grep -Ev "(Database|information_schema|performance_schema|mysql|sys)")
if [ -z "$DATABASES" ]; then
echo "Aucune base MariaDB trouvée ! Vérifie la connexion au conteneur."
exit 1
fi
echo "Bases MariaDB trouvées :"
echo "$DATABASES"
# Dump de chaque base
for DB in $DATABASES; do
echo "Dump de la base $DB..."
mysqldump -h $MARIADB_HOST -P $MARIADB_PORT -u$MARIADB_USER -p$MARIADB_PASSWORD $DB \
| gzip > "$BACKUP_DIR/${DB}_$(date +%F).sql.gz"
done
echo "Backup MariaDB terminé dans $BACKUP_DIR"