39 lines
1.2 KiB
Bash
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"
|