#!/bin/bash #Variables d'environnement DATADIR="/var/lib/mysql" #Emplacement base de données TARGET="/home/utilisateur/backups" #Emplacement de la sauvegarde UserSavePreload="" #Pour forcer le nom utilisateur à utiliser pour faire les sauvegardes UserSavePassPreload="" #Pour forcer le mot de passe de l'utilisateur echo echo "Script de sauvegarde base de données mariadb avec MariaBackup" echo # Vérification mariadb-backup est installé. MariaBackupVersion=$(command mariabackup -v 2> /dev/null) if [ -z "$MariaBackupVersionj" ]; then echo "ERREUR: mariadb-backup non installé" exit 1 fi # Extraction des versions BACKUP_VER=$($mariabackup --version 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1) MARIADB_VER=$(mariadb --version 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1) # Comparaison des versions if [ "$BACKUP_VER" = "$MARIADB_VER" ]; then echo "OK Versions identiques" exit 0 else echo "Attention versions différentes, veuillez installer la version adapté" exit 0 fi function SaveDB { read -p "Utilisateur ? " UserSave read -p "Mot de passe ? "UserSavePass UserSave=$UserSavePreload UserSavePass=$UserSavePassPreload mariabackup --backup --parallel=2 --datadir=$DATADIR --target-dir=$TARGET/full-$(date +%Y%m%d) --user='$UserSave' --password='$UserSavePass' } # Fonction creation utilisateur MariaDB function UserCreate { read -p "Nouveau nom d'utilisateur MariaDB ? " UserCreateName if [ -z "$UserCreateName" ]; then echo "❌ Erreur: Le nom d'utilisateur ne peut pas être vide" exit 1 fi read -sp "Mot de passe ? " UserCreatePassword read -sp "Confirmer mot de passe ? " UserCreatePasswordRepeat if [ -z "$UserCreatePassword" ]; then echo "❌ Le mot de passe ne peut pas être vide" exit 1 fi if [ "$UserCreatePassword" != "$UserCreatePasswordRepeat" ]; then echo "❌ Les mots de passe ne correspondent pas" exit 1 fi echo "🔐 Connexion à MariaDB..." mariadb -u root -p <