diff --git a/scripts/backup_mariadb.sh b/scripts/backup_mariadb.sh new file mode 100644 index 0000000..cd870cc --- /dev/null +++ b/scripts/backup_mariadb.sh @@ -0,0 +1,38 @@ +#!/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"